/
githubmirror
/
PowerToys
Обзор
Документация
Войти
/
githubmirror
/
PowerToys
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/modules/previewpane/BgcodePreviewHandlerCpp/dllmain.cpp
73 строки
2 KB
Pedro Lamas
Adds BgcodeThumbnailProvider and BgcodePreviewHandler (#38667)
10 июл 2025, 12:20
Не верифицирован
10 июл 2025, 12:20
071f5d7
Код
Авторство
О чём код?
// dllmain.cpp : Defines the entry point for the DLL application. #include "pch.h" #include "ClassFactory.h" HINSTANCE g_hInst = NULL; long g_cDllRef = 0; // {0e6d5bdd-d5f8-4692-a089-8bb88cdd37f4} static const GUID CLSID_BgcodePreviewHandler = { 0x0e6d5bdd, 0xd5f8, 0x4692, { 0xa0, 0x89, 0x8b, 0xb8, 0x8c, 0xdd, 0x37, 0xf4 } }; BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: g_hInst = hModule; DisableThreadLibraryCalls(hModule); break; case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return TRUE; } // // FUNCTION: DllGetClassObject // // PURPOSE: Create the class factory and query to the specific interface. // // PARAMETERS: // * rclsid - The CLSID that will associate the correct data and code. // * riid - A reference to the identifier of the interface that the caller // is to use to communicate with the class object. // * ppv - The address of a pointer variable that receives the interface // pointer requested in riid. Upon successful return, *ppv contains the // requested interface pointer. If an error occurs, the interface pointer // is NULL. // STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, void** ppv) { HRESULT hr = CLASS_E_CLASSNOTAVAILABLE; if (IsEqualCLSID(CLSID_BgcodePreviewHandler, rclsid)) { hr = E_OUTOFMEMORY; ClassFactory* pClassFactory = new ClassFactory(); if (pClassFactory) { hr = pClassFactory->QueryInterface(riid, ppv); pClassFactory->Release(); } } return hr; } // // FUNCTION: DllCanUnloadNow // // PURPOSE: Check if we can unload the component from the memory. // // NOTE: The component can be unloaded from the memory when its reference // count is zero (i.e. nobody is still using the component). // STDAPI DllCanUnloadNow(void) { return g_cDllRef > 0 ? S_FALSE : S_OK; }