Gray C++ Libraries  0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
cXObjScript.h
Go to the documentation of this file.
1 //
4 //
5 
6 #ifndef _INC_cXObjScript_H
7 #define _INC_cXObjScript_H
8 #ifndef NO_PRAGMA_ONCE
9 #pragma once
10 #endif
11 #include "cXObjEventSink.h"
12 #include "../ScriptExec/cScriptFile.h"
13 
14 namespace GrayLib
15 {
16 #if 0
17  class GRAYLIB_LINK cXObjScriptFunc : public cXObjEventSink
18  {
22  cScriptSectionPtr m_pSection;
23  };
24 #endif
25 
27  : public cXObjPack
28  {
35 
36  protected:
38 
39  public:
40  cXObjScript(const FILECHAR_t* pszFilePathName, cXObjPackFactory* pFactory);
41  virtual ~cXObjScript();
42 
43  virtual HRESULT LoadXObjPack(IXObject* pRoot = nullptr) override;
44  virtual HRESULT InvokeMethodInt(cXObjPackChild* pEventSink, const ATOMCHAR_t* pszMethod, const cVariant& vArgs, OUT cVariant& vValRet) override;
45 
46  ITERATE_t ScanEventHandlers(cXObjEventSink* pEventSink, cScriptSection* pSection);
47  };
48 
50 
52  : public cXObjPackFactory
53  , public cSingleton<cXObjScriptFactory>
54  {
58  public:
60  virtual ~cXObjScriptFactory();
61  virtual cXObjPackPtr CreateXObjFile(const FILECHAR_t* pszFilePath) override;
62  };
63 }
64 
65 #ifdef GRAY_DLL // force implementation/instantiate for DLL/SO.
66 namespace Gray
67 {
68  template class GRAYLIB_LINK cRefPtr<GrayLib::cXObjScript>;
69 }
70 #endif
71 
72 #endif // _INC_cXObjScript_H
#define GRAYLIB_LINK
Definition: GrayLibBase.h:35
INT32 HRESULT
_WIN32 style error codes. INT32
Definition: SysTypes.h:465
#define CHEAPOBJECT_IMPL
Definition: cHeapObject.h:32
Definition: cScriptSection.h:25
Definition: cVariant.h:26
Definition: cXObjEventSink.h:49
Definition: cXObjPackChild.h:18
Definition: cXObjPack.h:110
Definition: cXObjPack.h:30
Definition: cXObjScript.h:54
Definition: cXObjScript.h:28
CHEAPOBJECT_IMPL
Definition: cXObjScript.h:37
Definition: cRefPtr.h:225
Definition: cSingleton.h:127
Definition: IXObject.h:46
Definition: cMesh.h:22
class __DECL_IMPORT cXObjScript
Definition: cXObjEventSink.h:18
cRefPtr< cXObjScript > cXObjScriptPtr
Definition: cXObjScript.h:49
cRefPtr< cScriptSection > cScriptSectionPtr
Definition: cScriptSection.h:46
< The main namespace for all Core functions.
Definition: GrayCore.cpp:14
int ITERATE_t
like size_t but signed
Definition: Index.h:28
char FILECHAR_t
a UTF8 char in a file name. like TCHAR
Definition: FileName.h:22
char ATOMCHAR_t
the char form (UNICODE or not) for an atom. (for symbolic names)
Definition: StrConst.h:15