Windows2003-3790/base/remoteboot/admin/dll.h
2020-09-30 16:53:55 +02:00

71 lines
1.7 KiB
C

//
// Copyright 1997 - Microsoft
//
//
// DLL.H - DLL globals
//
#ifndef _DLL_H_
#define _DLL_H_
extern HINSTANCE g_hInstance;
extern DWORD g_cObjects;
extern DWORD g_cLock;
extern UINT g_cfDsObjectNames;
extern UINT g_cfDsDisplaySpecOptions;
extern UINT g_cfDsPropetyPageInfo;
extern UINT g_cfMMCGetNodeType;
extern WCHAR g_szDllFilename[ MAX_PATH ];
extern WCHAR g_cszHelpFile[];
#define DllExport __declspec( dllimport )
//
// Thread-safe inc/decrements macros.
//
extern CRITICAL_SECTION g_InterlockCS;
#define InterlockDecrement( _var ) {\
EnterCriticalSection( &g_InterlockCS ); \
--_var;\
LeaveCriticalSection( &g_InterlockCS ); \
}
#define InterlockIncrement( _var ) {\
EnterCriticalSection( &g_InterlockCS ); \
++_var;\
LeaveCriticalSection( &g_InterlockCS ); \
}
//
// Class Definitions
//
typedef void *(*LPCREATEINST)();
typedef struct _ClassTable {
LPCREATEINST pfnCreateInstance; // creation function for class
const CLSID * rclsid; // classes in this DLL
LPCTSTR pszName; // Class name for debugging
} CLASSTABLE[], *LPCLASSTABLE;
//
// Class Table Macros
//
#define BEGIN_CLASSTABLE const CLASSTABLE g_DllClasses = {
#define DEFINE_CLASS( _pfn, _riid, _name ) { _pfn, &_riid, TEXT(_name) },
#define END_CLASSTABLE { NULL, NULL, NULL } };
extern const CLASSTABLE g_DllClasses;
#include "qi.h"
#include "debug.h"
// Macros
#define ARRAYSIZE( _x ) ((UINT) ( sizeof( _x ) / sizeof( _x[ 0 ] ) ))
#define PtrToByteOffset(base, offset) (((LPBYTE)base)+offset)
#endif // _DLL_H_