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

Тема в разделе ".NET", создана пользователем vladimir7485, 16 янв 2010.

  1. vladimir7485

    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 но этих функций не обнаруживаю.
     
  2. Young Programmer

    Young Programmer Гость

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

    vladimir7485 Гость

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

    Young Programmer Гость

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

    vladimir7485 Гость

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

    YAK Гость

    Вам поможет сайт www.pinvoke.net или любые другие темы по interop
     
Загрузка...

Поделиться этой страницей