mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
131 lines
3.6 KiB
131 lines
3.6 KiB
/************************** Om ***********************************
|
|
******************************************************************
|
|
*
|
|
* MainHandler.h
|
|
*
|
|
* AUTHOR: Guru Datta Venkatarama
|
|
*
|
|
* HISTORY:
|
|
* Created : 01/29/97
|
|
*
|
|
*
|
|
* SUMMARY:
|
|
*
|
|
******************************************************************
|
|
(c) Microsoft 1997 - All right reserved.
|
|
******************************************************************/
|
|
|
|
#include <ifacesvr.h>
|
|
|
|
#ifndef PPVOID
|
|
typedef LPVOID* PPVOID;
|
|
#endif
|
|
|
|
#ifndef _MAINHANDLER_H
|
|
#define _MAINHANDLER_H
|
|
|
|
/*------------------------------------------------------------
|
|
** CHandlerClassFactory
|
|
*
|
|
* DESCRIPTION : ClassFactory Object for the In Proc Handler
|
|
*
|
|
* AUTHOR : Guru Datta Venkatarama
|
|
* 01/29/97 11:02:35 (PST)
|
|
*
|
|
------------------------------------------------------------*/
|
|
class CHandlerClassFactory : public IClassFactory
|
|
{
|
|
private:
|
|
|
|
protected:
|
|
ULONG m_ClassFactory_refcount; // Object reference count
|
|
|
|
public:
|
|
|
|
GUID m_CLSID_whoamI;
|
|
// constructor
|
|
CHandlerClassFactory(void);
|
|
// destructor
|
|
~CHandlerClassFactory(void);
|
|
|
|
// IUnknown methods
|
|
STDMETHODIMP QueryInterface(REFIID, PPVOID);
|
|
STDMETHODIMP_(ULONG) AddRef(void);
|
|
STDMETHODIMP_(ULONG) Release(void);
|
|
|
|
// IClassFactory methods
|
|
STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID, PPVOID);
|
|
STDMETHODIMP LockServer(BOOL);
|
|
|
|
ULONG GetRefCount(void) { return(m_ClassFactory_refcount); }
|
|
};
|
|
|
|
/*------------------------------------------------------------
|
|
** Property Sheet Interface Object
|
|
*
|
|
* DESCRIPTION : Here be the C object that implements the Property
|
|
interface.
|
|
*
|
|
* AUTHOR : Guru Datta Venkatarama
|
|
* 01/31/97 11:09:54 (PST)
|
|
*
|
|
------------------------------------------------------------*/
|
|
class CDIGameCntrlPropSheet;
|
|
typedef CDIGameCntrlPropSheet *LPCDIGAMECNTRLPROPSHEET;
|
|
|
|
class CServerClassFactory;
|
|
/*------------------------------------------------------------
|
|
** Actual handler Object
|
|
*
|
|
* DESCRIPTION : Here be the actual Plug in handler object class...
|
|
*
|
|
* AUTHOR : Guru Datta Venkatarama
|
|
* 01/31/97 11:15:32 (PST)
|
|
*
|
|
------------------------------------------------------------*/
|
|
class CPluginHandler : public IServerCharacteristics
|
|
{
|
|
|
|
friend CDIGameCntrlPropSheet;
|
|
|
|
private:
|
|
// server interfaces
|
|
LPCDIGAMECNTRLPROPSHEET m_pImpIServerProperty;
|
|
BOOL LoadServerInterface(REFIID, PPVOID);
|
|
|
|
public:
|
|
// object lifetime maintanence count
|
|
ULONG m_cPluginHandler_refcount;
|
|
// generic handler to specific server identity
|
|
GUID m_CLSID_whoamI;
|
|
// constructor ...
|
|
CPluginHandler(void);
|
|
// destructor ....
|
|
~CPluginHandler(void);
|
|
|
|
// Class Diagnostics code :
|
|
ULONG GetRefCount(void) { return(m_cPluginHandler_refcount); }
|
|
|
|
// IUnknown methods
|
|
STDMETHODIMP QueryInterface(REFIID, PPVOID);
|
|
STDMETHODIMP_(ULONG) AddRef(void);
|
|
STDMETHODIMP_(ULONG) Release(void);
|
|
|
|
// CImpIServerProperty methods
|
|
STDMETHODIMP Launch(HWND hWnd, USHORT startpage, USHORT nID);
|
|
STDMETHODIMP GetReport(LPDIGCSHEETINFO *lpSheetInfo, LPDIGCPAGEINFO *lpPageInfo);
|
|
|
|
// accessors to the contined classes Interface pointers
|
|
LPCDIGAMECNTRLPROPSHEET GetServerPropIface(void)
|
|
{
|
|
if(LoadServerInterface(IID_IDIGameCntrlPropSheet, (void **)&m_pImpIServerProperty))
|
|
return(m_pImpIServerProperty);
|
|
else
|
|
return(NULL);
|
|
}
|
|
};
|
|
|
|
typedef CPluginHandler *tpCPluginHandler;
|
|
int CALLBACK PropSheetCallback(HWND hDlg,UINT uMsg,LPARAM lParam);
|
|
#endif
|
|
//--------------------------------------------------------------EOF
|