Leaked source code of windows server 2003
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.
 
 
 
 
 
 

87 lines
2.3 KiB

//////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 1999-2000 Microsoft Corporation
//
// Module Name:
// CFactory.h
//
// Description:
// Class Factory implementation.
//
// Maintained By:
// Geoffrey Pease (GPease) 22-NOV-1999
//
//////////////////////////////////////////////////////////////////////////////
#pragma once
#define CCH(sz) (sizeof(sz)/sizeof(sz[0]))
//
// 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
#define DllExport __declspec( dllimport )
#define SCRIPTRES_RESTYPE_NAME L"ScriptRes"
//
// Class Definitions for DLLGetClassObject
//
typedef LPUNKNOWN (*LPCREATEINST)();
typedef struct _ClassTable {
LPCREATEINST pfnCreateInstance; // creation function for class
const CLSID * rclsid; // classes in this DLL
LPCTSTR pszName; // Class name for debugging
LPCTSTR pszComModel; // String indicating COM threading model
} CLASSTABLE[], *LPCLASSTABLE;
//
// Class Table Macros
//
#define BEGIN_CLASSTABLE const CLASSTABLE g_DllClasses = {
#define DEFINE_CLASS( _pfn, _riid, _name, _model ) { _pfn, &_riid, TEXT(_name), TEXT(_model) },
#define END_CLASSTABLE { NULL, NULL, NULL, NULL } };
extern const CLASSTABLE g_DllClasses;
//
// DLL required headers
//
#include <Debug.h> // debugging
#include <CITracker.h>
#if defined( _X86_ ) && defined( TRACE_INTERFACES_ENABLED )
//
// DLL Interface Table Macros
//
#define BEGIN_INTERFACETABLE const INTERFACE_TABLE g_itTable = {
#define DEFINE_INTERFACE( _iid, _name, _count ) { &_iid, TEXT(_name), _count },
#define END_INTERFACETABLE { NULL, NULL, NULL } };
#endif // TRACE_INTERFACES_ENABLED
//
// DLL Useful Macros
//
#define PtrToByteOffset(base, offset) (((LPBYTE)base)+offset)
#define STATUS_TO_RETURN( _hr ) \
( ( HRESULT_FACILITY( _hr ) == FACILITY_WIN32 ) ? HRESULT_CODE( _hr ) : _hr )
//
// DLL Global Function Prototypes
//
HRESULT
HrClusCoCreateInstance(
REFCLSID rclsidIn,
LPUNKNOWN pUnkOuterIn,
DWORD dwClsContextIn,
REFIID riidIn,
LPVOID * ppvOut
);