home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 2000 April / VPR0004A.BIN / OLS / SADKT100 / sadkt100.lzh / SrcAlml.lzh / Ad_Alml.cpp < prev    next >
C/C++ Source or Header  |  1999-12-31  |  3KB  |  110 lines

  1. // Ad_Alml.cpp : DLL エクスポートのインプリメンテーション
  2.  
  3.  
  4. // メモ: Proxy/Stub 情報
  5. //  別々の proxy/stub DLL をビルドするためには、プロジェクトのディレクトリで 
  6. //      nmake -f Ad_Almlps.mak を実行してください。
  7.  
  8. #include "stdafx.h"
  9. #include "resource.h"
  10. #include <initguid.h>
  11. #include "Ad_Alml.h"
  12.  
  13. #include "Ad_Alml_i.c"
  14. #include "CommandSink.h"
  15.  
  16. #include "Sari_i.c"
  17. #include "SariAddin.h"
  18.  
  19.  
  20. CComModule _Module;
  21.  
  22. BEGIN_OBJECT_MAP(ObjectMap)
  23. // OBJECT_ENTRY(CLSID_CommandSink, CCommandSink)
  24. OBJECT_ENTRY(CLSID_SariAddin, CSariAddin)
  25. END_OBJECT_MAP()
  26.  
  27. class CAd_AlmlApp : public CWinApp
  28. {
  29. public:
  30.  
  31. // オーバーライド
  32.     // ClassWizard は仮想関数のオーバーライドを生成します。
  33.     //{{AFX_VIRTUAL(CAd_AlmlApp)
  34.     public:
  35.     virtual BOOL InitInstance();
  36.     virtual int ExitInstance();
  37.     //}}AFX_VIRTUAL
  38.  
  39.     //{{AFX_MSG(CAd_AlmlApp)
  40.         // メモ - ClassWizard はこの位置にメンバ関数を追加または削除します。
  41.         //          この位置に生成されるコードを編集しないでください。
  42.     //}}AFX_MSG
  43.     DECLARE_MESSAGE_MAP()
  44. };
  45.  
  46. BEGIN_MESSAGE_MAP(CAd_AlmlApp, CWinApp)
  47.     //{{AFX_MSG_MAP(CAd_AlmlApp)
  48.         // メモ - クラスウィザードはこの場所に、マクロ マッピングを追加/削除します
  49.         //          この位置に生成されるコードを編集しないでください。
  50.     //}}AFX_MSG_MAP
  51. END_MESSAGE_MAP()
  52.  
  53. CAd_AlmlApp theApp;
  54.  
  55. BOOL CAd_AlmlApp::InitInstance()
  56. {
  57.     SetRegistryKey(_T("Kazusoft"));
  58.  
  59.     _Module.Init(ObjectMap, m_hInstance, &LIBID_AD_ALMLLib);
  60.     return CWinApp::InitInstance();
  61. }
  62.  
  63. int CAd_AlmlApp::ExitInstance()
  64. {
  65.     _Module.Term();
  66.     return CWinApp::ExitInstance();
  67. }
  68.  
  69. /////////////////////////////////////////////////////////////////////////////
  70. // DLL が OLE によってアンロード可能かどうかを調べるために使用されます
  71.  
  72. STDAPI DllCanUnloadNow(void)
  73. {
  74.     AFX_MANAGE_STATE(AfxGetStaticModuleState());
  75.     return (AfxDllCanUnloadNow()==S_OK && _Module.GetLockCount()==0) ? S_OK : S_FALSE;
  76. }
  77.  
  78. /////////////////////////////////////////////////////////////////////////////
  79. // 要求された型のオブジェクトを作成するためにクラス ファクトリを返します
  80.  
  81. STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv)
  82. {
  83.     return _Module.GetClassObject(rclsid, riid, ppv);
  84. }
  85.  
  86. /////////////////////////////////////////////////////////////////////////////
  87. // DllRegisterServer - システム レジストリへエントリを追加します
  88.  
  89. STDAPI DllRegisterServer(void)
  90. {
  91.     // オブジェクト、タイプライブラリおよびタイプライブラリ内の全てのインターフェイスを登録します
  92.     return _Module.RegisterServer(TRUE);
  93. }
  94.  
  95. /////////////////////////////////////////////////////////////////////////////
  96. // DllUnregisterServer - システム レジストリからエントリを削除します
  97.  
  98. STDAPI DllUnregisterServer(void)
  99. {
  100.     CRegKey rKey;
  101.     if(ERROR_SUCCESS==rKey.Open(HKEY_CURRENT_USER, _T("Software\\Kazusoft"))){
  102.         rKey.RecurseDeleteKey(_T("AD_Alml"));
  103.         rKey.Close();
  104.     }
  105.     
  106.     return _Module.UnregisterServer(TRUE);
  107. }
  108.  
  109.  
  110.