Files
Work/proto/source/SOBJ.HPP
2024-08-07 09:16:27 -04:00

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