SMPPCOM.cpp
上传用户:hkcoast
上传日期:2007-01-12
资源大小:979k
文件大小:2k
源码类别:

手机短信编程

开发平台:

Visual C++

  1. // SMPPCOM.cpp : Implementation of DLL Exports.
  2. #include "stdafx.h"
  3. #include "resource.h"
  4. #include "SMPPCOM.h"
  5. #include "dlldatax.h"
  6. class CSMPPCOMModule : public CAtlDllModuleT< CSMPPCOMModule >
  7. {
  8. public :
  9. DECLARE_LIBID(LIBID_SMPPCOMLib)
  10. DECLARE_REGISTRY_APPID_RESOURCEID(IDR_SMPPCOM, "{31C91F31-DF1B-4A6A-8FAA-B316F08BDD04}")
  11. };
  12. CSMPPCOMModule _AtlModule;
  13. class CSMPPCOMApp : public CWinApp
  14. {
  15. public:
  16. // Overrides
  17.     virtual BOOL InitInstance();
  18.     virtual int ExitInstance();
  19.     DECLARE_MESSAGE_MAP()
  20. };
  21. BEGIN_MESSAGE_MAP(CSMPPCOMApp, CWinApp)
  22. END_MESSAGE_MAP()
  23. CSMPPCOMApp theApp;
  24. BOOL CSMPPCOMApp::InitInstance()
  25. {
  26. #ifdef _MERGE_PROXYSTUB
  27.     if (!PrxDllMain(m_hInstance, DLL_PROCESS_ATTACH, NULL))
  28. return FALSE;
  29. #endif
  30. WSADATA wsaData;
  31. WSAStartup(MAKEWORD(2,2), &wsaData);
  32.     return CWinApp::InitInstance();
  33. }
  34. int CSMPPCOMApp::ExitInstance()
  35. {
  36. WSACleanup();
  37.     return CWinApp::ExitInstance();
  38. }
  39. // Used to determine whether the DLL can be unloaded by OLE
  40. STDAPI DllCanUnloadNow(void)
  41. {
  42. #ifdef _MERGE_PROXYSTUB
  43.     HRESULT hr = PrxDllCanUnloadNow();
  44.     if (FAILED(hr))
  45.         return hr;
  46. #endif
  47.     AFX_MANAGE_STATE(AfxGetStaticModuleState());
  48.     return (AfxDllCanUnloadNow()==S_OK && _AtlModule.GetLockCount()==0) ? S_OK : S_FALSE;
  49. }
  50. // Returns a class factory to create an object of the requested type
  51. STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv)
  52. {
  53. #ifdef _MERGE_PROXYSTUB
  54.     if (PrxDllGetClassObject(rclsid, riid, ppv) == S_OK)
  55.         return S_OK;
  56. #endif
  57.     return _AtlModule.DllGetClassObject(rclsid, riid, ppv);
  58. }
  59. // DllRegisterServer - Adds entries to the system registry
  60. STDAPI DllRegisterServer(void)
  61. {
  62.     // registers object, typelib and all interfaces in typelib
  63.     HRESULT hr = _AtlModule.DllRegisterServer();
  64. #ifdef _MERGE_PROXYSTUB
  65.     if (FAILED(hr))
  66.         return hr;
  67.     hr = PrxDllRegisterServer();
  68. #endif
  69. return hr;
  70. }
  71. // DllUnregisterServer - Removes entries from the system registry
  72. STDAPI DllUnregisterServer(void)
  73. {
  74. HRESULT hr = _AtlModule.DllUnregisterServer();
  75. #ifdef _MERGE_PROXYSTUB
  76.     if (FAILED(hr))
  77.         return hr;
  78.     hr = PrxDllRegisterServer();
  79.     if (FAILED(hr))
  80.         return hr;
  81.     hr = PrxDllUnregisterServer();
  82. #endif
  83. return hr;
  84. }