• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Использование Shell

  • Автор темы vladimir7485
  • Дата начала
V

vladimir7485

Может я ваще не туда копаю, дело в том что я только начала работать в среде .NET. Я пытаюсь написать прогу типа ShellTreeView в Delphi.
Или в С# OpenFileDialog.
Требуется получить доступ ко всем функциям Windows Shell Api. Например в С++ подключаются библиотеки
#include <shlobj.h>
#include <shlwapi.h>
#include <shellapi.h>
и сразу доступны например функции как
IFACEMETHODIMP ParseDisplayName(HWND hwnd, IBindCtx *pbc, PWSTR pszName,
ULONG *pchEaten, PIDLIST_RELATIVE *ppidl, ULONG *pdwAttributes);
IFACEMETHODIMP EnumObjects(HWND hwnd, DWORD grfFlags, IEnumIDList **ppenumIDList);
IFACEMETHODIMP BindToObject(PCUIDLIST_RELATIVE pidl, IBindCtx *pbc, REFIID riid, void **ppv);
IFACEMETHODIMP BindToStorage(PCUIDLIST_RELATIVE pidl, IBindCtx *pbc, REFIID riid, void **ppv);
IFACEMETHODIMP CompareIDs(LPARAM lParam, PCUIDLIST_RELATIVE pidl1, PCUIDLIST_RELATIVE pidl2);
IFACEMETHODIMP CreateViewObject(HWND hwnd, REFIID riid, void **ppv);
IFACEMETHODIMP GetAttributesOf(UINT cidl, PCUITEMID_CHILD_ARRAY apidl, ULONG *rgfInOut);
IFACEMETHODIMP GetUIObjectOf(HWND hwnd, UINT cidl, PCUITEMID_CHILD_ARRAY apidl,
REFIID riid, UINT* prgfInOut, void **ppv);
IFACEMETHODIMP GetDisplayNameOf(PCUITEMID_CHILD pidl, SHGDNF shgdnFlags, STRRET *pName);
IFACEMETHODIMP SetNameOf(HWND hwnd, PCUITEMID_CHILD pidl, PCWSTR pszName, DWORD uFlags, PITEMID_CHILD * ppidlOut);
В С# подключаю в References Shell32 но этих функций не обнаруживаю.
 
Y

Young Programmer

Код:
[DllImport("dllname.dll")]
static extern int function();
 
V

vladimir7485

Так. А что делать если у меня только [DllImportAttribute] есть. И что за функция static extern int function();. Спасибо))
 
Y

Young Programmer

Так. А что делать если у меня только [DllImportAttribute] есть. И что за функция static extern int function();. Спасибо))

DllImportAttribute - это и есть то что вам надо. функция приведена для примера, никакой смысловой нагрузки она не несет. лучше почитайте ченить полезное по .NET и C# в частности.
 
V

vladimir7485

Спасибо. А как вызвать функцию BindToObject интерфейса IShellFolder?
 
Y

YAK

Вам поможет сайт или любые другие темы по interop
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!