windows-nt/Source/XPSP1/NT/shell/cpls/common/propsext.h
2020-09-26 16:20:57 +08:00

84 lines
2.4 KiB
C++

//---------------------------------------------------------------------------
//
// File: propsext.h
//
// General definition of OLE Entry points, CClassFactory and CPropSheetExt
//
// Common Code for all display property sheet extension
//
// Copyright (c) Microsoft Corp. 1992-1998 All Rights Reserved
//
//---------------------------------------------------------------------------
#ifndef _COMMONPROPEXT_H
#define _COMMONPROPEXT_H
extern BOOL g_RunningOnNT;
extern HINSTANCE g_hInst;
extern LPDATAOBJECT g_lpdoTarget;
// OLE-Registry magic number
extern GUID g_CLSID_CplExt;
// Someone made a spelling mistake
#define PropertySheeDlgProc PropertySheetDlgProc
INT_PTR CALLBACK PropertySheetDlgProc(HWND hDlg, UINT uMessage, WPARAM wParam, LPARAM lParam);
UINT CALLBACK PropertySheetCallback(HWND hwnd, UINT uMsg, LPPROPSHEETPAGE ppsp);
//Type for an object-destroyed callback
typedef void (FAR PASCAL *LPFNDESTROYED)(void);
class CClassFactory : public IClassFactory
{
protected:
ULONG m_cRef;
public:
CClassFactory();
~CClassFactory();
//IUnknown members
STDMETHODIMP QueryInterface( REFIID, LPVOID* );
STDMETHODIMP_(ULONG) AddRef();
STDMETHODIMP_(ULONG) Release();
//IClassFactory members
STDMETHODIMP CreateInstance( LPUNKNOWN, REFIID, LPVOID* );
STDMETHODIMP LockServer( BOOL );
};
class CPropSheetExt : public IShellPropSheetExt, IShellExtInit
{
private:
ULONG m_cRef;
LPUNKNOWN m_pUnkOuter; //Controlling unknown
LPFNDESTROYED m_pfnDestroy; //Function closure call
public:
CPropSheetExt( LPUNKNOWN pUnkOuter, LPFNDESTROYED pfnDestroy );
~CPropSheetExt(void);
// IUnknown members
STDMETHODIMP QueryInterface(REFIID, LPVOID*);
STDMETHODIMP_(ULONG) AddRef(void);
STDMETHODIMP_(ULONG) Release(void);
// IShellExtInit methods
STDMETHODIMP Initialize(LPCITEMIDLIST pIDFolder, LPDATAOBJECT pDataObj,
HKEY hKeyID);
//IShellPropSheetExt methods ***
STDMETHODIMP AddPages( LPFNADDPROPSHEETPAGE lpfnAddPage, LPARAM lParam );
STDMETHODIMP ReplacePage(UINT uPageID, LPFNADDPROPSHEETPAGE lpfnReplaceWith,
LPARAM lParam);
};
#endif // _COMMONPROPEXT_H