NT4/private/ole32/dllhost/csrgt.hxx
2020-09-30 17:12:29 +02:00

71 lines
1.6 KiB
C++

//+-------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1996.
//
// File: csrgt.hxx
//
// Contents: classes which implement ISurrogate:
// CSurrgate
// CSurrogateFactory
//
//
// History: 03-Jun-96 t-AdamE Created
//
//--------------------------------------------------------------------------
#if !defined(__CSRGT_HXX__)
#define __CSRGT_HXX__
#include <windows.h>
#include <ole2.h>
#include "debnot.h"
#include "libtable.hxx"
#include "cmonitor.hxx"
//+-------------------------------------------------------------------------
//
// Class: CSurrogate
//
// Purpose: Implement the ISurrogate interface required by COM
// for processes that act as surrogates for dll servers
//
// History: 21-May-96 t-Adame Created
//
//--------------------------------------------------------------------------
// forward declaration
class CSurrogate;
class CSurrogate : public ISurrogate
{
public:
CSurrogate();
// IUnknown methods
STDMETHOD (QueryInterface)(REFIID iid, LPVOID FAR * ppv);
STDMETHOD_(ULONG,AddRef)();
STDMETHOD_(ULONG,Release)();
// ISurrogate methods
STDMETHOD (LoadDllServer)(/* [in] */ REFCLSID rclsid);
STDMETHOD (FreeSurrogate)();
// non-COM methods
void WaitForSafeLibraryFree();
// signaled by a call to FreeSurrogate from OLE when its time
// to terminate the surrogate process
static HANDLE _hEventAllLibsFree;
static CSurrogate* _pSurrogate;
private:
ULONG _cref;
CLibTable m_tblibs;
};
#endif // __CSRGT_HXX__