105 lines
2.7 KiB
C++
105 lines
2.7 KiB
C++
#ifndef _PROTO_CSIMPLEOBJECT_HPP_
|
|
#define _PROTO_CSIMPLEOBJECT_HPP_
|
|
#ifndef _COM_OLE2_HPP_
|
|
#include <com/ole2.hpp>
|
|
#endif
|
|
#ifndef _PROTO_INTERFACE_HPP_
|
|
#include <proto/iface.hpp>
|
|
#endif
|
|
#ifndef _PROTO_DLLSERVER_HPP_
|
|
#include <proto/dllserve.hpp>
|
|
#endif
|
|
#ifndef _COM_DISPATCH_HPP_
|
|
#include <com/dispatch.hpp>
|
|
#endif
|
|
#ifndef _COM_MESSAGEHANDLER_HPP_
|
|
#include <com/mhandler.hpp>
|
|
#endif
|
|
#ifndef _COM_IOLEINPLACEOBJECTWINDOWLESS_HPP_
|
|
#include <com/ipobjwls.hpp>
|
|
#endif
|
|
#ifndef _COM_IOLEOBJECT_HPP_
|
|
#include <com/oleobj.hpp>
|
|
#endif
|
|
#ifndef _PROTO_GUIDS_HPP_
|
|
#include <proto/guids.hpp>
|
|
#endif
|
|
#ifndef _COM_IIDLIB_HPP_
|
|
#include <com/iidlib.hpp>
|
|
#endif
|
|
#ifndef _COM_IVIEWOBJECT_HPP_
|
|
#include <com/iviewobj.hpp>
|
|
#endif
|
|
|
|
class CSimpleObject;
|
|
|
|
class CImpIViewObject : public IViewObjectCmn<CSimpleObject>
|
|
{
|
|
public:
|
|
CImpIViewObject(SmartPointer<CSimpleObject> &backObj,PIUnknown &unkOuter);
|
|
~CImpIViewObject();
|
|
HRESULT __stdcall QueryInterface(REFIID riid,PPVOID ppv);
|
|
ULONG __stdcall AddRef(void);
|
|
ULONG __stdcall Release();
|
|
private:
|
|
};
|
|
|
|
class CImpIOleInPlaceObjectWindowless : public IOleInPlaceObjectWindowlessCmn<CSimpleObject>
|
|
{
|
|
public:
|
|
CImpIOleInPlaceObjectWindowless(SmartPointer<CSimpleObject> &backObj,PIUnknown &unkOuter);
|
|
~CImpIOleInPlaceObjectWindowless();
|
|
HRESULT __stdcall QueryInterface(REFIID riid,PPVOID ppv);
|
|
ULONG __stdcall AddRef(void);
|
|
ULONG __stdcall Release(void);
|
|
private:
|
|
};
|
|
|
|
class CImpIOleObject : public IOleObjectCmn<CSimpleObject>
|
|
{
|
|
public:
|
|
CImpIOleObject(SmartPointer<CSimpleObject> &backObj,PIUnknown &unkOuter);
|
|
~CImpIOleObject();
|
|
HRESULT __stdcall QueryInterface(REFIID riid,PPVOID ppv);
|
|
ULONG __stdcall AddRef(void);
|
|
ULONG __stdcall Release(void);
|
|
private:
|
|
};
|
|
|
|
class CImpISimpleObject : public IDispatchCmn<ISimpleObject,&CLSID_SimpleObject,&LIBID_SimpleObjectLib,0>
|
|
{
|
|
public:
|
|
CImpISimpleObject(SmartPointer<CSimpleObject> &pBackObj,PIUnknown &pUnkOuter);
|
|
~CImpISimpleObject();
|
|
HRESULT __stdcall QueryInterface(REFIID riid,PPVOID ppv);
|
|
ULONG __stdcall AddRef(void);
|
|
ULONG __stdcall Release(void);
|
|
HRESULT __stdcall setByte(BYTE someBYTE);
|
|
private:
|
|
SmartPointer<CSimpleObject> mBackObj;
|
|
PIUnknown mUnkOuter;
|
|
ULONG mRefCount;
|
|
};
|
|
|
|
class CSimpleObject : public ISimpleObject
|
|
{
|
|
public:
|
|
CSimpleObject(PIUnknown &pUnkOuter,SmartPointer<DLLServer> &server);
|
|
~CSimpleObject();
|
|
HRESULT __stdcall QueryInterface(REFIID riid,PPVOID ppv);
|
|
ULONG __stdcall AddRef(void);
|
|
ULONG __stdcall Release(void);
|
|
HRESULT __stdcall setByte(BYTE someByte);
|
|
private:
|
|
CImpISimpleObject mImpISimpleObject;
|
|
CImpIOleInPlaceObjectWindowless mImpIOleInPlaceObjectWindowless;
|
|
CImpIOleObject mImpIOleObject;
|
|
CImpIViewObject mImpIViewObject;
|
|
SmartPointer<DLLServer> mDLLServer;
|
|
IIDLib mIIDLib;
|
|
PIUnknown mUnkOuter;
|
|
ULONG mRefCount;
|
|
};
|
|
|
|
typedef CSimpleObject *PCSimpleObject;
|
|
#endif |