24 #ifndef __IOBJECTMODEL__ 25 #define __IOBJECTMODEL__ 28 #include "IPMUnknown.h" 29 #include "ShuksanID.h" 30 #include "InterfaceTrackingUtils.h" 35 class IInterfaceRegistry;
36 class InterfaceProxyRegistry;
39 class BossConstructorList;
50 enum { kDefaultIID = IID_IOBJECTMODEL };
88 virtual const char*
GetIDName(int32 idSpace, int32
id)
const = 0;
159 virtual InterfaceResetViewFun QueryInterfaceResetViewFun(
ImplementationID prop)
const = 0;
161 virtual void ReleaseInterfaceResetViewFun (
ImplementationID prop)
const = 0;
168 virtual void RegisterID(
PluginID ownerComponent, int32 IDSpaceID,
const char* name, int32
id) = 0;
171 virtual void AddClassFactory(
PluginID ownerComponent,
ClassID id, BossConstructor construct) = 0;
175 virtual void FillOutInterfaceFactory(
PluginID ownerComponent,
ImplementationID faceID, InterfaceConstructor construct, InterfaceDestructor destroyer, InterfaceSizeOf sizeofFunc, InterfaceReadWrite readWriter, InterfaceReadWrite snapshotReadWriter, InterfaceResetViewFun resetViewFun) = 0;
186 virtual IInterfaceRegistry *GetInterfaceRegistry()
const = 0;
188 virtual BossConstructor GetClassConstructor(
const ClassID theClass)
const = 0;
191 #ifdef INTERFACEPROXIES_SUPPORTED 197 virtual InterfaceReadWrite GetNonProxyReadWriter(
ImplementationID faceID)
const = 0;
198 virtual InterfaceReadWrite GetNonProxySnapshotReadWriter(
ImplementationID faceID)
const = 0;
199 virtual InterfaceResetViewFun GetNonProxyInterfaceResetViewFun(
ImplementationID faceID)
const = 0;
201 virtual bool16 InterfaceIsTracked(
const PMIID faceID)
const = 0;
202 virtual void TrackInterface(
const PMIID interfaceID,
const ClassID clsid) = 0;
203 virtual bool16 BossIsTracked(
const ClassID id)
const = 0;
204 virtual void TrackBoss(
const ClassID id) = 0;
208 #ifdef INTERFACEPROXIES_SUPPORTED 209 virtual bool16 IsBossTrackingOn(
void)
const = 0;
211 virtual void XferSavedDataStuff(
IPMStream*) = 0;
229 fReadWrite(readWrite)
231 InterfaceReadWrite GetReadWrite()
const {
return fReadWrite; }
233 InterfaceReadWrite fReadWrite;
251 fSnapshotReadWrite(om->QueryInterfaceSnapshotReadWrite(implID))
259 operator InterfaceReadWrite()
const 260 {
return fSnapshotReadWrite.GetReadWrite(); }
261 InterfaceReadWrite GetSnapshotReadWrite()
const 262 {
return fSnapshotReadWrite.GetReadWrite(); }
284 operator InterfaceReadWrite()
const 285 {
return fReadWrite.GetReadWrite(); }
286 InterfaceReadWrite GetReadWrite()
const 287 {
return fReadWrite.GetReadWrite(); }
302 #endif // __IOBJECTMODEL__