67 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| // -----------------------------------------------------------------------
 | |
| // Microsoft Distributed Transaction Coordinator (Microsoft Confidential)
 | |
| // Copyright 1994 - 1995 Microsoft Corporation.  All Rights Reserved.
 | |
| // @doc
 | |
| // @module LOGMGRCF.H | Header for class factory <c CFLogMgr>.<nl><nl>
 | |
| // Description:<nl>
 | |
| //   Class factory for <c CLogMgr>.
 | |
| // @rev 0 | 10/18/94 | rcraig | Created: For WPGEP COM lab.
 | |
| // @rev 1 | 03/16/95 | rcraig | Updated: For Viper COM DLL templates.
 | |
| // @rev 2 | 05/09/95 | rbarnes | Cloned: For LOGMGR.DLL
 | |
| // -----------------------------------------------------------------------
 | |
| 
 | |
| 
 | |
| 
 | |
| #ifndef _LOGMGRCF_H
 | |
| #	define _LOGMGRCF_H
 | |
| 
 | |
| // ===============================
 | |
| // INCLUDES:
 | |
| // ===============================
 | |
| 
 | |
| #ifdef WIN32								// OLE inclusions:
 | |
| #	include <objbase.h>
 | |
| #else
 | |
| #	include <windows.h>
 | |
| #	include <ole2.h>
 | |
| #endif WIN32
 | |
| 
 | |
| #include "utAssert.h"						// Assert macros.
 | |
| 
 | |
| #include "utsem.h"							// Concurrency utilities.
 | |
| 
 | |
| // ===============================
 | |
| // CLASS: CFLogMgr
 | |
| // ===============================
 | |
| 
 | |
| 
 | |
| // -----------------------------------------------------------------------
 | |
| // @class CFLogMgr | Class Factory for <c CLogMgr>.<nl><nl>
 | |
| // Threading: Thread-safe (see concurrency comments on individual methods).<nl>
 | |
| // Platforms: Win.<nl>
 | |
| // Includes : LOGMGR.H.<nl>
 | |
| // Ref count: Per object.<nl>
 | |
| // Hungarian: n/a.
 | |
| // -----------------------------------------------------------------------
 | |
| class CFLogMgr : public IClassFactory			// @base public | IClassFactory.
 | |
| {
 | |
| public:		// ------------------------------- @access Samsara (public):
 | |
| 	CFLogMgr(); // @cmember .
 | |
| 	~CFLogMgr(); // @cmember .
 | |
| 
 | |
| public:		// ------------------------------- @access IUnknown (public):
 | |
| 	virtual STDMETHODIMP			QueryInterface (REFIID i_iid, LPVOID FAR* o_ppv); // @cmember .
 | |
| 	virtual STDMETHODIMP_(ULONG)	AddRef (void); // @cmember .
 | |
| 	virtual STDMETHODIMP_(ULONG)	Release (void); // @cmember .
 | |
| 
 | |
| public:		// ------------------------------- @access IClassFactory (public):
 | |
| 	virtual STDMETHODIMP			CreateInstance (IUnknown* i_pIUnkOuter, REFIID i_iid, LPVOID FAR* o_ppv); // @cmember .
 | |
|     virtual STDMETHODIMP			LockServer (BOOL i_fLock); // @cmember .
 | |
| 
 | |
| private:	// ------------------------------- @access Reference counting data (private):
 | |
| 	ULONG			m_ulcRef;				// @cmember Object reference count.
 | |
| 	CSemExclusive	m_semxRef;				// @cmember Exclusive semaphore for object reference count.
 | |
| };
 | |
| 
 | |
| #endif _LOGMGRCF_H
 |