134 lines
4 KiB
C
134 lines
4 KiB
C
|
//----------------------------------------------------------------------------
|
||
|
//
|
||
|
// Microsoft Windows
|
||
|
// Copyright (C) Microsoft Corporation, 2001.
|
||
|
//
|
||
|
// File: Ccomp.h
|
||
|
//
|
||
|
// Contents: Wifi Policy management Snapin
|
||
|
//
|
||
|
//
|
||
|
// History: TaroonM
|
||
|
// 10/30/01
|
||
|
//
|
||
|
//----------------------------------------------------------------------------
|
||
|
|
||
|
#ifndef _CCOMP_H
|
||
|
#define _CCOMP_H
|
||
|
|
||
|
///////////////////////////////////////////////////////////////////////////
|
||
|
///////////////////////////////////////////////////////////////////////////
|
||
|
// Extra cruft (where should we put this?)
|
||
|
|
||
|
#define ARRAYLEN(x) (sizeof(x) / sizeof((x)[0]))
|
||
|
|
||
|
enum CUSTOM_VIEW_ID
|
||
|
{
|
||
|
VIEW_DEFAULT_LV = 0,
|
||
|
VIEW_CALENDAR_OCX = 1,
|
||
|
VIEW_MICROSOFT_URL = 2,
|
||
|
};
|
||
|
|
||
|
///////////////////////////////////////////////////////////////////////////
|
||
|
///////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
// forward decl
|
||
|
class CComponentDataImpl;
|
||
|
|
||
|
class CComponentImpl :
|
||
|
public IComponent,
|
||
|
public IExtendContextMenu,
|
||
|
public IExtendControlbar,
|
||
|
public IExtendPropertySheet,
|
||
|
public IResultDataCompare,
|
||
|
public CComObjectRoot
|
||
|
{
|
||
|
public:
|
||
|
CComponentImpl();
|
||
|
~CComponentImpl();
|
||
|
|
||
|
BEGIN_COM_MAP(CComponentImpl)
|
||
|
COM_INTERFACE_ENTRY(IComponent)
|
||
|
COM_INTERFACE_ENTRY(IExtendContextMenu)
|
||
|
COM_INTERFACE_ENTRY(IExtendControlbar)
|
||
|
COM_INTERFACE_ENTRY(IExtendPropertySheet)
|
||
|
COM_INTERFACE_ENTRY(IResultDataCompare)
|
||
|
END_COM_MAP()
|
||
|
|
||
|
friend class CDataObject;
|
||
|
static long lDataObjectRefCount;
|
||
|
|
||
|
// IComponent interface members
|
||
|
public:
|
||
|
STDMETHOD(Initialize)(LPCONSOLE lpConsole);
|
||
|
STDMETHOD(Notify)(LPDATAOBJECT pDataObject, MMC_NOTIFY_TYPE event, LPARAM arg, LPARAM param);
|
||
|
STDMETHOD(Destroy)(MMC_COOKIE cookie);
|
||
|
STDMETHOD(GetResultViewType)(MMC_COOKIE cookie, LPOLESTR* ppViewType, long* pViewOptions);
|
||
|
STDMETHOD(QueryDataObject)(MMC_COOKIE cookie, DATA_OBJECT_TYPES type, LPDATAOBJECT* ppDataObject);
|
||
|
|
||
|
STDMETHOD(GetDisplayInfo)(LPRESULTDATAITEM pResultDataItem);
|
||
|
STDMETHOD(CompareObjects)(LPDATAOBJECT pDataObjectA, LPDATAOBJECT pDataObjectB);
|
||
|
|
||
|
// IResultDataCompare
|
||
|
STDMETHOD(Compare)(LPARAM lUserParam, MMC_COOKIE cookieA, MMC_COOKIE cookieB, int* pnResult);
|
||
|
|
||
|
// IExtendControlbar interface
|
||
|
STDMETHOD(SetControlbar)(LPCONTROLBAR pControlbar);
|
||
|
STDMETHOD(ControlbarNotify)(MMC_NOTIFY_TYPE event, LPARAM arg, LPARAM param);
|
||
|
|
||
|
// IExtendPropertySheet interface
|
||
|
public:
|
||
|
STDMETHOD(CreatePropertyPages)(LPPROPERTYSHEETCALLBACK lpProvider, LONG_PTR handle, LPDATAOBJECT pDataObject);
|
||
|
STDMETHOD(QueryPagesFor)(LPDATAOBJECT pDataObject);
|
||
|
|
||
|
public:
|
||
|
// IPersistStream interface members
|
||
|
STDMETHOD(GetClassID)(CLSID *pClassID);
|
||
|
|
||
|
// Helpers for CComponentImpl
|
||
|
public:
|
||
|
void SetIComponentData(CComponentDataImpl* pData);
|
||
|
|
||
|
#if DBG==1
|
||
|
public:
|
||
|
int dbg_cRef;
|
||
|
ULONG InternalAddRef()
|
||
|
{
|
||
|
++dbg_cRef;
|
||
|
return CComObjectRoot::InternalAddRef();
|
||
|
}
|
||
|
ULONG InternalRelease()
|
||
|
{
|
||
|
--dbg_cRef;
|
||
|
return CComObjectRoot::InternalRelease();
|
||
|
}
|
||
|
#endif // DBG==1
|
||
|
|
||
|
// IExtendContextMenu
|
||
|
public:
|
||
|
STDMETHOD(AddMenuItems)(LPDATAOBJECT pDataObject, LPCONTEXTMENUCALLBACK pCallbackUnknown, long *pInsertionAllowed);
|
||
|
STDMETHOD(Command)(long nCommandID, LPDATAOBJECT pDataObject);
|
||
|
|
||
|
// Helper functions
|
||
|
protected:
|
||
|
void Construct();
|
||
|
|
||
|
// Interface pointers
|
||
|
protected:
|
||
|
LPCONSOLE m_pConsole; // Console's IFrame interface
|
||
|
LPHEADERCTRL m_pHeader; // Result pane's header control interface
|
||
|
LPCOMPONENTDATA m_pComponentData;
|
||
|
LPCONSOLEVERB m_pConsoleVerb; // pointer the console verb
|
||
|
LPRESULTDATA m_pResultData; // My interface pointer to the result pane
|
||
|
CComPtr <IControlbar> m_spControlbar; // Used by IExtendControlbar implementation
|
||
|
CComponentDataImpl* m_pCComponentData;
|
||
|
|
||
|
private:
|
||
|
CUSTOM_VIEW_ID m_CustomViewID;
|
||
|
DWORD m_dwSortOrder; // default is 0, else RSI_DESCENDING
|
||
|
int m_nSortColumn;
|
||
|
};
|
||
|
|
||
|
#endif
|
||
|
|