📄 dsplugin.cpp
字号:
// DSPlugIn.cpp : Defines the initialization routines for the DLL.//#include "stdafx.h"#include <initguid.h>#include "DSPlugIn.h"#include "DSAddIn.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endifCComModule _Module;BEGIN_OBJECT_MAP(ObjectMap) OBJECT_ENTRY(CLSID_DSAddIn, CDSAddIn)END_OBJECT_MAP()/////////////////////////////////////////////////////////////////////////////// CDSPlugInAppclass CDSPlugInApp : public CWinApp{public: CDSPlugInApp();// Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CDSPlugInApp) public: virtual BOOL InitInstance(); virtual int ExitInstance(); //}}AFX_VIRTUAL //{{AFX_MSG(CDSPlugInApp) // NOTE - the ClassWizard will add and remove member functions here. // DO NOT EDIT what you see in these blocks of generated code ! //}}AFX_MSG DECLARE_MESSAGE_MAP()};/////////////////////////////////////////////////////////////////////////////// CDSPlugInAppBEGIN_MESSAGE_MAP(CDSPlugInApp, CWinApp) //{{AFX_MSG_MAP(CDSPlugInApp) // NOTE - the ClassWizard will add and remove mapping macros here. // DO NOT EDIT what you see in these blocks of generated code! //}}AFX_MSG_MAPEND_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////// The one and only CDSPlugInApp objectCDSPlugInApp theApp;/////////////////////////////////////////////////////////////////////////////// CDSPlugInApp constructionCDSPlugInApp::CDSPlugInApp(){ // TODO: add construction code here, // Place all significant initialization in InitInstance}/////////////////////////////////////////////////////////////////////////////// CDSPlugInApp initializationBOOL CDSPlugInApp::InitInstance(){ _Module.Init(ObjectMap, m_hInstance, &LIBID_TestRunnerDSPluginLib); return CWinApp::InitInstance();}int CDSPlugInApp::ExitInstance(){ _Module.Term(); return CWinApp::ExitInstance();}/////////////////////////////////////////////////////////////////////////////// Special entry points required for inproc serversSTDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv){ AFX_MANAGE_STATE(AfxGetStaticModuleState()); return _Module.GetClassObject(rclsid, riid, ppv);}STDAPI DllCanUnloadNow(void){ AFX_MANAGE_STATE(AfxGetStaticModuleState()); return (AfxDllCanUnloadNow()==S_OK && _Module.GetLockCount()==0) ? S_OK : S_FALSE;}// by exporting DllRegisterServer, you can use regsvr32.exeSTDAPI DllRegisterServer(void){ AFX_MANAGE_STATE(AfxGetStaticModuleState()); HRESULT hRes = S_OK; // Registers object, typelib and all interfaces in typelib hRes = _Module.RegisterServer(TRUE); if (FAILED(hRes)) return hRes; // Register description of this add-in object in its own // "/Description" subkey. // TODO: If you add more add-ins to this module, you need // to register all of their descriptions, each description // in each add-in object's registry CLSID entry: // HKEY_CLASSES_ROOT\Clsid\{add-in CLSID}\Description="add-in description"/* _ATL_OBJMAP_ENTRY* pEntry = _Module.m_pObjMap; CRegKey key; LONG lRes = key.Open(HKEY_CLASSES_ROOT, _T("CLSID")); if (lRes == ERROR_SUCCESS) { USES_CONVERSION; LPOLESTR lpOleStr; StringFromCLSID(*pEntry->pclsid, &lpOleStr); LPTSTR lpsz = OLE2T(lpOleStr); lRes = key.Open(key, lpsz); if (lRes == ERROR_SUCCESS) { CString strDescription; strDescription.LoadString(IDS_DSPLUGIN_DESCRIPTION); key.SetKeyValue(_T("Description"), strDescription); } CoTaskMemFree(lpOleStr); } if (lRes != ERROR_SUCCESS) hRes = HRESULT_FROM_WIN32(lRes);*/ return hRes;}/////////////////////////////////////////////////////////////////////////////// DllUnregisterServer - Removes entries from the system registrySTDAPI DllUnregisterServer(void){ AFX_MANAGE_STATE(AfxGetStaticModuleState()); HRESULT hRes = S_OK; _Module.UnregisterServer(); return hRes;}/////////////////////////////////////////////////////////////////////////////// Debugging support// GetLastErrorDescription is used in the implementation of the VERIFY_OK// macro, defined in stdafx.h.#ifdef _DEBUGvoid GetLastErrorDescription(CComBSTR& bstr){ CComPtr<IErrorInfo> pErrorInfo; if (GetErrorInfo(0, &pErrorInfo) == S_OK) pErrorInfo->GetDescription(&bstr);}#endif //_DEBUG
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -