Gray C++ Libraries  0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
IXObject.h
Go to the documentation of this file.
1 //
6 //
7 
8 #ifndef _INC_IXObject_H
9 #define _INC_IXObject_H
10 #ifndef NO_PRAGMA_ONCE
11 #pragma once
12 #endif
13 
14 #include "../Scriptable/IScriptableObj.h"
15 #include "../UID/cFourCC.h"
16 #include "../UID/cUID.h"
17 #include "GrayCore/include/cAtom.h"
18 
19 #if defined(_WIN32) // defined(_MSC_VER) && (_MSC_VER>=1300) // NOT GNU ?
20 #include <oaidl.h> // IDispatch
21 #endif
22 #ifdef __linux__
23 
24 MIDL_INTERFACE("00000001-0000-0000-C000-000000000046") IClassFactory : public IUnknown
25 {
26  // Just stub this out for stuff we care about.
27 public:
28  IGNORE_WARN_INTERFACE(IClassFactory);
29 
30  STDMETHOD(CreateInstance)(
31  /* [unique][in] */ IUnknown *pUnkOuter,
32  /* [in] */ const IID& riid,
33  /* [iid_is][out] */ void **ppvObject) = 0;
34 
35  STDMETHOD(LockServer)( /* [in] */ BOOL fLock) = 0;
36 };
37 
38 #endif
39 
40 namespace GrayLib
41 {
42  typedef FOURCC XOBJTID_t;
45 
46  MIDL_INTERFACE("0C3E2E71-B93C-11d2-AAD0-006007654321") IXObject
47  : public IUnkObject // IUnknown, get_Name
48  {
54 
56  STDMETHOD_(XOBJTID_t, get_XObjTypeId)() const = 0;
57  };
58 
59  MIDL_INTERFACE("0C3E2E71-B93C-11d2-AAD0-006007654322") IXObjContainer
60  {
64  STDMETHOD(get_ContentQty)() const = 0;
65  STDMETHOD(ContentEnum)(int i, IXObject** ppObj) const = 0;
66  // STDMETHOD_(bool,IsMyChild)( IXObject* pObjChild ) = 0;
67  };
68 
69  MIDL_INTERFACE("0C3E2E71-B93C-11d2-AAD0-006007654320") IXObjMgr : public IClassFactory
70  {
76  STDMETHOD(FindByUID)(UID_t uid, IXObject** ppObj) = 0;
77  STDMETHOD(FindBySymName)(const ATOMCHAR_t* pszSymName, IXObject** ppObj) = 0;
78  STDMETHOD(FindByStr)(const ATOMCHAR_t* pszID, IXObject** ppObj) = 0;
79  };
80 };
81 
82 #endif // _INC_IXObject_H
MIDL_INTERFACE("7ED943DD-52E8-40b5-A8D8-76685C406330") ID3DXBaseMesh
#define IGNORE_WARN_INTERFACE(c)
Definition: GrayCore.h:79
UINT32 FOURCC
32 bit code. Also defined in _MMSYSTEM_H
Definition: cFourCC.h:19
Definition: IXObject.h:59
Definition: IXObject.h:69
Definition: IXObject.h:46
Definition: IUnknown.h:68
Definition: cMesh.h:22
FOURCC XOBJTID_t
a unique FOURCC id for a type of XObject, 0=k_XOBJTID_NULL, MAKEFOURCC(a,b,c,d). Equiv to GUID for IU...
Definition: IXObject.h:42
const XOBJTID_t k_XOBJTID_NULL
a NULL object type.
Definition: IXObject.h:43
const XOBJTID_t k_XOBJTID_DEFAULT
a default XObject created for scripting.
Definition: IXObject.h:44
MIDL_INTERFACE("0C3E2E71-B93C-11d2-AAD0-006007654304") IScriptableObj
HASHCODE32_t UID_t
Sort of the same as a HASHCODE_t. not the same as UIDINDEX_t.
Definition: cUID.h:18
char ATOMCHAR_t
the char form (UNICODE or not) for an atom. (for symbolic names)
Definition: StrConst.h:15
Definition: IUnknown.h:34