windows-nt/Source/XPSP1/NT/printscan/ui/extend/dll/classes.h
2020-09-26 16:20:57 +08:00

76 lines
2.4 KiB
C++

//(C) COPYRIGHT MICROSOFT CORP., 1998-1999
#ifndef _CLASSES_H_
#define _CLASSES_H_
/*****************************************************************************
class CShellExt
Implement our regular shell extensions.
******************************************************************************/
class ATL_NO_VTABLE CShellExt :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CShellExt, &CLSID_TestShellExt>,
public IShellExtInit, public IContextMenu, public IShellPropSheetExt
{
private:
UINT_PTR m_idCmd;
CComPtr<IWiaItem> m_pItem;
static INT_PTR CALLBACK PropPageProc (HWND hwnd, UINT msg, WPARAM wp, LPARAM lp);
HRESULT GetNewRootPath (HWND hwnd);
public:
BEGIN_COM_MAP(CShellExt)
COM_INTERFACE_ENTRY(IShellExtInit)
COM_INTERFACE_ENTRY(IContextMenu)
COM_INTERFACE_ENTRY(IShellPropSheetExt)
END_COM_MAP()
DECLARE_NO_REGISTRY()
// IShellExtInit
STDMETHODIMP Initialize (LPCITEMIDLIST pidlFolder,LPDATAOBJECT lpdobj,HKEY hkeyProgID);
// IShellPropSheetExt
STDMETHODIMP AddPages (LPFNADDPROPSHEETPAGE lpfnAddPage,LPARAM lParam);
STDMETHODIMP ReplacePage (UINT uPageID,LPFNADDPROPSHEETPAGE lpfnReplacePage,LPARAM lParam) {return E_NOTIMPL;};
// IContextMenu
STDMETHODIMP QueryContextMenu (HMENU hmenu,UINT indexMenu,UINT idCmdFirst,UINT idCmdLast,UINT uFlags);
STDMETHODIMP InvokeCommand (LPCMINVOKECOMMANDINFO lpici);
STDMETHODIMP GetCommandString (UINT_PTR idCmd, UINT uType,UINT* pwReserved,LPSTR pszName,UINT cchMax);
~CShellExt ();
CShellExt ();
};
class ATL_NO_VTABLE CWiaUIExtension :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CWiaUIExtension, &CLSID_TestUIExtension>,
public IWiaUIExtension
{
public:
CWiaUIExtension ();
~CWiaUIExtension ();
DECLARE_REGISTRY_RESOURCEID(IDR_VIEWREG)
DECLARE_PROTECT_FINAL_CONSTRUCT()
BEGIN_COM_MAP(CWiaUIExtension)
COM_INTERFACE_ENTRY(IWiaUIExtension)
END_COM_MAP()
//
// IWiaUIExtension
//
STDMETHODIMP DeviceDialog( PDEVICEDIALOGDATA pDeviceDialogData );
STDMETHODIMP GetDeviceIcon( BSTR bstrDeviceId, HICON *phIcon, ULONG nSize );
STDMETHODIMP GetDeviceBitmapLogo( BSTR bstrDeviceId, HBITMAP *phBitmap, ULONG nMaxWidth, ULONG nMaxHeight );
};
#endif