123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- // TSPlug.cpp : DLL 导出的实现。
- /*
- 本源码由TC简单软件科技有限公司开源,功能可以自由修改、发布、
- 长沙简单软件科技有限公司对于源码不做后期维护,,请大家在使用过程中遵循开源协议
- */
- #include "stdafx.h"
- #include "resource.h"
- #include "TSPlug_i.h"
- #include "dllmain.h"
- // 用于确定 DLL 是否可由 OLE 卸载
- STDAPI DllCanUnloadNow(void)
- {
- return _AtlModule.DllCanUnloadNow();
- }
- // 返回一个类工厂以创建所请求类型的对象
- STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID* ppv)
- {
- return _AtlModule.DllGetClassObject(rclsid, riid, ppv);
- }
- // DllRegisterServer - 将项添加到系统注册表
- STDAPI DllRegisterServer(void)
- {
- // 注册对象、类型库和类型库中的所有接口
- HRESULT hr = _AtlModule.DllRegisterServer();
- return hr;
- }
- // DllUnregisterServer - 将项从系统注册表中移除
- STDAPI DllUnregisterServer(void)
- {
- HRESULT hr = _AtlModule.DllUnregisterServer();
- return hr;
- }
- // DllInstall - 按用户或者按计算机在系统注册表中添加/删除项。
- STDAPI DllInstall(BOOL bInstall, LPCWSTR pszCmdLine)
- {
- HRESULT hr = E_FAIL;
- static const wchar_t szUserSwitch[] = _T("user");
- if (pszCmdLine != NULL)
- {
- if (_wcsnicmp(pszCmdLine, szUserSwitch, _countof(szUserSwitch)) == 0)
- {
- AtlSetPerUserRegistration(true);
- }
- }
- if (bInstall)
- {
- hr = DllRegisterServer();
- if (FAILED(hr))
- {
- DllUnregisterServer();
- }
- }
- else
- {
- hr = DllUnregisterServer();
- }
- return hr;
- }
|