-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathGRScript.cpp
74 lines (56 loc) · 2.2 KB
/
GRScript.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
// GRScript.cpp : DLL エクスポートのインプリメンテーション
// メモ: Proxy/Stub 情報
// 別々の proxy/stub DLL をビルドするためには、プロジェクトのディレクトリで
// nmake -f GRScriptps.mak を実行してください。
#include "stdafx.h"
#include "resource.h"
#include <initguid.h>
#include "GRScript.h"
#include "GRScript_i.c"
#include "GlobalRubyScript.h"
#include "Rubyize.h"
DEFINE_GUID(SID_GetCaller, 0x4717cc40, 0xbcb9, 0x11d0, 0x93, 0x36, 0x0, 0xa0, 0xc9, 0xd, 0xca, 0xa9);
CComModule _Module;
BEGIN_OBJECT_MAP(ObjectMap)
OBJECT_ENTRY(CLSID_SimpleRubyize, CRubyize)
OBJECT_ENTRY(CLSID_GlobalRubyScript, CGlobalRubyScript)
END_OBJECT_MAP()
/////////////////////////////////////////////////////////////////////////////
// DLL エントリ ポイント
extern "C"
BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpReserved*/)
{
if (dwReason == DLL_PROCESS_ATTACH)
{
_Module.Init(ObjectMap, hInstance, &LIBID_GRSCRIPTLib);
DisableThreadLibraryCalls(hInstance);
}
else if (dwReason == DLL_PROCESS_DETACH)
_Module.Term();
return TRUE; // ok
}
/////////////////////////////////////////////////////////////////////////////
// DLL が OLE によってアンロード可能かどうかを調べるために使用されます
STDAPI DllCanUnloadNow(void)
{
return (_Module.GetLockCount()==0) ? S_OK : S_FALSE;
}
/////////////////////////////////////////////////////////////////////////////
// 要求された型のオブジェクトを作成するためにクラス ファクトリを返します
STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv)
{
return _Module.GetClassObject(rclsid, riid, ppv);
}
/////////////////////////////////////////////////////////////////////////////
// DllRegisterServer - システム レジストリへエントリを追加します
STDAPI DllRegisterServer(void)
{
// オブジェクト、タイプライブラリおよびタイプライブラリ内の全てのインターフェイスを登録します
return _Module.RegisterServer(TRUE);
}
/////////////////////////////////////////////////////////////////////////////
// DllUnregisterServer - システム レジストリからエントリを削除します
STDAPI DllUnregisterServer(void)
{
return _Module.UnregisterServer(TRUE);
}