104 lines
3 KiB
C++
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__
|