////////////////////////////////////////////////////////////////////////////// // // Copyright (c) 1999-2002 Microsoft Corporation // // Module Name: // Dll.h // // Description: // DLL globals definitions and macros. // // Maintained By: // Geoffrey Pease (GPease) 22-NOV-1999 // ////////////////////////////////////////////////////////////////////////////// #pragma once // // DLL Globals // extern HINSTANCE g_hInstance; extern LONG g_cObjects; extern LONG g_cLock; extern WCHAR g_szDllFilename[ MAX_PATH ]; extern LPVOID g_GlobalMemoryList; // Global memory tracking list // // Application ID (AppID) Macros // #define BEGIN_APPIDS const SAppIDInfo g_AppIDs[] = { #define DEFINE_APPID( _name, _rappid, _idslaunch, _idsaccess, _nauthlevel, _nrunas ) { &_rappid, _name, ( RTL_NUMBER_OF( _name ) - 1 ), _idslaunch, _idsaccess, _nauthlevel, _nrunas }, #define END_APPIDS { NULL } }; extern const SAppIDInfo g_AppIDs[]; // // Class Table Macros // #define BEGIN_DLL_PUBLIC_CLASSES const SPublicClassInfo g_DllPublicClasses[] = { #define PUBLIC_CLASS( _name, _rclsid, _pfnCreator, _threading ) { _pfnCreator, &_rclsid, _name, ( RTL_NUMBER_OF( _name ) - 1 ), NULL, 0, _threading, NULL, NULL }, #define CLASS_WITH_APPID( _name, _rclsid, _pfnCreator, _threading, _rappid ) { _pfnCreator, &_rclsid, _name, ( RTL_NUMBER_OF( _name ) - 1 ), NULL, 0, _threading, &_rappid, NULL }, #define CLASS_WITH_CATID( _name, _rclsid, _pfnCreator, _threading, _pfncatreg ) { _pfnCreator, &_rclsid, _name, ( RTL_NUMBER_OF( _name ) - 1 ), NULL, 0, _threading, NULL, _pfncatreg }, #define CLASS_WITH_PROGID( _name, _rclsid, _pfnCreator, _threading, _progid ) { _pfnCreator, &_rclsid, _name, ( RTL_NUMBER_OF( _name ) - 1 ), _progid, ( RTL_NUMBER_OF( _progid ) - 1 ), _threading, NULL, NULL }, #define END_DLL_PUBLIC_CLASSES { NULL } }; extern const SPublicClassInfo g_DllPublicClasses[]; #define BEGIN_PRIVATE_CLASSES const SPrivateClassInfo g_PrivateClasses[] = { #define PRIVATE_CLASS( _name, _rclsid, _pfnCreator ) { _pfnCreator, &_rclsid, _name, ( RTL_NUMBER_OF( _name ) - 1 ) }, #define END_PRIVATE_CLASSES { NULL } }; extern const SPrivateClassInfo g_PrivateClasses[]; // // Category ID (CATID) Macros // #define BEGIN_CATIDTABLE const SCatIDInfo g_DllCatIds[] = { #define DEFINE_CATID( _rcatid, _name ) { &_rcatid, _name }, #define END_CATIDTABLE { NULL } }; const size_t g_cDllCatIds = RTL_NUMBER_OF( g_DllCatIds ) - 1; extern const SCatIDInfo g_DllCatIds[]; extern const size_t g_cDllCatIds; // // Type Library Macros // #define BEGIN_TYPELIBS const STypeLibInfo g_DllTypeLibs[] = { #define DEFINE_TYPELIB( _idlibres ) { _idlibres, FALSE }, #define END_TYPELIBS { 0, TRUE } }; extern const STypeLibInfo g_DllTypeLibs[]; // // DLL Global Function Prototypes // HRESULT HrCoCreateInternalInstance( REFCLSID rclsidIn, LPUNKNOWN pUnkOuterIn, DWORD dwClsContextIn, REFIID riidIn, LPVOID * ppvOut ); HRESULT HrCoCreateInternalInstanceEx( REFCLSID rclsidIn, LPUNKNOWN pUnkOuterIn, DWORD dwClsContextIn, COSERVERINFO * pServerInfoIn, ULONG cMultiQIsIn, MULTI_QI * prgmqiInOut );