windows-nt/Source/XPSP1/NT/com/oleutest/balls/common/embed.hxx
2020-09-26 16:20:57 +08:00

104 lines
3 KiB
C++

//+-------------------------------------------------------------------
//
// File: embed.hxx
//
// Contents: CTestEmbedCF and CTestEmbed object declarations
//
// History: 24-Nov-92 DeanE Created
//
//---------------------------------------------------------------------
#ifndef __EMBED_HXX__
#define __EMBED_HXX__
extern "C" const GUID CLSID_TestEmbed;
class CTestServerApp;
class CTestEmbedCF;
class CDataObject;
class COleObject;
class CPersistStorage;
//+-------------------------------------------------------------------
// Class: CTestEmbedCF
//
// Synopsis: Class Factory for CTestEmbed object type
//
// Methods: QueryInterface - IUnknown
// AddRef - IUnknown
// Release - IUnknown
// CreateInstance - IClassFactory
// LockServer - IClassFactory
//
// History: 24-Nov-92 DeanE Created
//--------------------------------------------------------------------
class CTestEmbedCF : public IClassFactory
{
public:
// Constructor/Destructor
CTestEmbedCF(CTestServerApp *ptsaServer);
~CTestEmbedCF();
static IClassFactory FAR *Create(CTestServerApp *ptsaServer);
// IUnknown
STDMETHODIMP QueryInterface (REFIID iid, void FAR * FAR *ppv);
STDMETHODIMP_(ULONG) AddRef (void);
STDMETHODIMP_(ULONG) Release (void);
// IClassFactory
STDMETHODIMP CreateInstance (IUnknown FAR *pUnkOuter,
REFIID iidInterface,
void FAR * FAR *ppv);
STDMETHODIMP LockServer (BOOL fLock);
private:
ULONG _cRef; // Reference count on this object
CTestServerApp *_ptsaServer; // Controlling server app
};
//+-------------------------------------------------------------------
// Class: CTestEmbed
//
// Synopsis: CTestEmbed (one instance per object)
//
// Methods: QueryInterface IUnknown
// AddRef IUnknown
// Release IUnknown
// InitObject
//
// History: 24-Nov-92 DeanE Created
//--------------------------------------------------------------------
class CTestEmbed : public IUnknown
{
public:
// Constructor/Destructor
CTestEmbed();
~CTestEmbed();
// IUnknown
STDMETHODIMP QueryInterface(REFIID iid, void FAR * FAR *ppv);
STDMETHODIMP_(ULONG) AddRef (void);
STDMETHODIMP_(ULONG) Release (void);
SCODE InitObject (CTestServerApp *ptsaServer, HWND hwnd);
SCODE GetWindow (HWND *phwnd);
private:
ULONG _cRef; // Reference counter
CTestServerApp *_ptsaServer; // Server "holding" this object
CDataObject *_pDataObject; // Points to object's IDataObject
COleObject *_pOleObject; // Points to object's IOleObject
CPersistStorage *_pPersStg; // Points to object's IPersistStorage
HWND _hwnd; // Window handle for this object
};
#endif // __EMBED_HXX__