home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tricks of the Windows Gam…ming Gurus (2nd Edition)
/
Disc2.iso
/
vc98
/
include
/
mprui.h
< prev
next >
Wrap
C/C++ Source or Header
|
1998-04-25
|
5KB
|
202 lines
/*++
Copyright (c) 1996, Microsoft Corporation
Module Name:
mprui.h
Abstract:
Declarations for the Multi-Protocol router's UI plugin interface.
--*/
// forward declarations
#ifdef _cplusplus
struct IMprUIHost;
struct IMprUIPlugin;
#else
typedef struct IMprUIHost IMprUIHost;
typedef struct IMprUIPlugin IMprUIPlugin;
#endif
// {73A827F0-FF6E-11cf-AA6B-00805F0C9232}
DEFINE_GUID(IID_IMprUIHost,
0x73a827f0, 0xff6e, 0x11cf, 0xaa, 0x6b, 0x0, 0x80, 0x5f, 0xc, 0x92, 0x32);
// {73A827F1-FF6E-11cf-AA6B-00805F0C9232}
DEFINE_GUID(IID_IMprUIPlugin,
0x73a827f1, 0xff6e, 0x11cf, 0xaa, 0x6b, 0x0, 0x80, 0x5f, 0xc, 0x92, 0x32);
#undef INTERFACE
#define INTERFACE IMprUIHost
DECLARE_INTERFACE_(IMprUIHost, IUnknown)
{
// *** IUnknown methods ***
STDMETHOD(QueryInterface) (
THIS_
REFIID riid,
LPVOID FAR* ppvObj
) PURE;
STDMETHOD_(ULONG,AddRef) (
THIS
) PURE;
STDMETHOD_(ULONG,Release) (
THIS
) PURE;
// *** IMprUIHost methods ***
// Create a floating window for the given control
// Use CoTaskMemAlloc to allocate pszTitle
STDMETHOD(FloatWindow) (
THIS_
REFCLSID rguidModule, // CLSID representing the object
REFCLSID rclsidCtrl, // CLSID of Ole Control to create
IMprUIPlugin* pConnection, // Plugin in node making request
DWORD dwContext, // constant context passed back to Ole Control
PWCHAR pszTitle // Title of floating window
) PURE;
// Force all nodes to be refreshed
STDMETHOD(GlobalRefresh) (
THIS
) PURE;
};
#undef INTERFACE
#define INTERFACE IMprUIPlugin
DECLARE_INTERFACE_(IMprUIPlugin, IUnknown)
{
// *** IUnknown methods ***
STDMETHOD(QueryInterface) (
THIS_
REFIID riid,
LPVOID FAR* ppvObj
) PURE;
STDMETHOD_(ULONG,AddRef) (
THIS
) PURE;
STDMETHOD_(ULONG,Release) (
THIS
) PURE;
// *** IMprUIPlugin Methods ***
// Connect to router. The plugin module should disconnect from the
// router when the IMprUIPlugin is released.
STDMETHOD(ConnectToRouter) (
THIS_
LPCTSTR pRouterName,
IMprUIHost *pMprUIHost
) PURE;
// Returns the text for the given node.
// Use CoTaskMemAlloc to allocate memory for ppszTitle
STDMETHOD(GetTitle) (
THIS_
PWSTR* ppszTitle
) PURE;
// Returns a context menu for the given node.
// Menu will be destroyed by host.
STDMETHOD(GetContextMenu) (
THIS_
HMENU* phMenu
) PURE;
// Processes the command returned by the context menu
// There are reserved commands (used to pass down the Hotkeys)
// such as IDM_HOTKEY_INSERT, IDM_HOTKEY_DELETE, and
// IDM_HOTKEY_RETURN. These commands are to be assigned to
// the appropriate task by the implementor of this interface.
STDMETHOD(ProcessCommand) (
THIS_
WPARAM wParam,
LPARAM lParam,
HWND hWndParent
) PURE;
// Returns CLSID for the ole control which displays right hand pane
// Use CoTaskMemAlloc to allocate space for CLSID*
STDMETHOD(GetCLSID) (
THIS_
CLSID** ppClsid
) PURE;
};
#define IDM_HOTKEY_INSERT (1024)
#define IDM_HOTKEY_DELETE (1025)
#define IDM_HOTKEY_RETURN (1026)
/* name mangling off */
#ifdef __cplusplus
extern "C" {
#endif
typedef DWORD
(APIENTRY* PFNMPRUITRANSPORTCONFIG)(
IN HWND hwndParent,
IN LPCWSTR pwsMachine,
IN DWORD dwTransportId,
IN DWORD dwReserved
);
#define MPRUITRANSPORTCONFIG MprUITransportConfig
#define SZMPRUITRANSPORTCONFIG "MprUITransportConfig"
typedef DWORD
(APIENTRY* PFNMPRUIPROTOCOLCONFIG)(
IN HWND hwndParent,
IN LPCWSTR pwsMachine,
IN DWORD dwTransportId,
IN DWORD dwProtocolId,
IN DWORD dwReserved
);
#define MPRUIPROTOCOLCONFIG MprUIProtocolConfig
#define SZMPRUIPROTOCOLCONFIG "MprUIProtocolConfig"
typedef DWORD
(APIENTRY* PFNMPRUITRANSPORTINTERFACECONFIG)(
IN HWND hwndParent,
IN LPCWSTR pwsMachine,
IN LPCWSTR pwsInterface,
IN DWORD dwIfType,
IN DWORD dwTransportId,
IN DWORD dwReserved
);
#define MPRUITRANSPORTINTERFACECONFIG MprUITransportInterfaceConfig
#define SZMPRUITRANSPORTINTERFACECONFIG "MprUITransportInterfaceConfig"
typedef DWORD
(APIENTRY* PFNMPRUIPROTOCOLINTERFACECONFIG)(
IN HWND hwndParent,
IN LPCWSTR pwsMachine,
IN LPCWSTR pwsInterface,
IN DWORD dwIfType,
IN DWORD dwTransportId,
IN DWORD dwProtocolId,
IN DWORD dwReserved
);
#define MPRUIPROTOCOLINTERFACECONFIG MprUIProtocolInterfaceConfig
#define SZMPRUIPROTOCOLINTERFACECONFIG "MprUIProtocolInterfaceConfig"
#ifdef __cplusplus
}
#endif