#ifndef __SHELLEXT_H_INCLUDED #define __SHELLEXT_H_INCLUDED #include #include #include interface IWiaItem; interface IWiaItem; interface IWiaPropUI; STDAPI_(HRESULT) PropertySheetFromDevice( IN LPCWSTR szDeviceId, DWORD dwFlags, HWND hParent ); STDAPI_(HRESULT) PropertySheetFromItem( IN LPCWSTR szDeviceId, IN LPCWSTR szItemName, DWORD dwFlags, HWND hParent ); STDAPI_(HRESULT) CreateWiaPropertySheetPages( LPPROPSHEETHEADER ppsh, IWiaItem *pItem ); STDAPI_(HRESULT) IMGetDeviceIdFromIDL( LPITEMIDLIST pidl, CSimpleStringWide &strDeviceId); STDAPI_(HRESULT) GetDeviceFromDeviceId( LPCWSTR pWiaItemRootId, REFIID riid, LPVOID * ppWiaItemRoot, BOOL bShowProgress ); HRESULT IMGetItemFromIDL (LPITEMIDLIST pidl, IWiaItem **ppItem, BOOL bShowProgress=FALSE); STDAPI_(HKEY) GetDeviceUIKey (IUnknown *pWiaItemRoot, DWORD dwType); STDAPI_(HKEY) GetGeneralUIKey (IUnknown *pWiaItemRoot, DWORD dwType); STDAPI_(HRESULT) DoDeleteAllItems(BSTR bstrDeviceId, HWND hwndOwner); STDAPI_(HRESULT) TakeAPicture (BSTR strDeviceId); // types of extensions #define WIA_UI_PROPSHEETHANDLER 0 #define WIA_UI_CONTEXTMENUHANDLER 1 #define WIA_UI_ICONHANDLER 2 typedef HRESULT (WINAPI *WIAMAKEFULLPIDLFORDEVICE)( LPWSTR pDeviceId, IN OUT LPITEMIDLIST * ppidl ); // Module name. To be used with LoadLibrary #define WIA_SHELL_EXTENSION_MODULE TEXT("wiashext.dll") // Exported function names #define WIA_PROPERTYSHEETFROMDEVICE "PropertySheetFromDevice" #define WIA_CREATEWIAPROPERTYSHEETPAGES "CreateWiaPropertySheetPages" // Exported function prototypes typedef HRESULT (WINAPI *CreateWiaPropertySheetPagesProc)( LPPROPSHEETHEADER, IWiaItem * ); typedef HRESULT (WINAPI *PropertySheetFromDeviceProc)( LPWSTR, DWORD, HWND ); #endif //__SHELLEXT_H_INCLUDED