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

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

vladimir7485

#1
Может я ваще не туда копаю, дело в том что я только начала работать в среде .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 но этих функций не обнаруживаю.
 
V

vladimir7485

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

Young Programmer

#4
Так. А что делать если у меня только [DllImportAttribute] есть. И что за функция static extern int function();. Спасибо))
DllImportAttribute - это и есть то что вам надо. функция приведена для примера, никакой смысловой нагрузки она не несет. лучше почитайте ченить полезное по .NET и C# в частности.
 
V

vladimir7485

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