bafunctions.cpp
1 // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. 2 3 #include "pch.h" 4 5 static HINSTANCE vhInstance = NULL; 6 7 extern "C" BOOL WINAPI DllMain( 8 IN HINSTANCE hInstance, 9 IN DWORD dwReason, 10 IN LPVOID /* pvReserved */ 11 ) 12 { 13 switch (dwReason) 14 { 15 case DLL_PROCESS_ATTACH: 16 ::DisableThreadLibraryCalls(hInstance); 17 vhInstance = hInstance; 18 break; 19 20 case DLL_PROCESS_DETACH: 21 vhInstance = NULL; 22 break; 23 } 24 25 return TRUE; 26 } 27 28 extern "C" HRESULT WINAPI BAFunctionsCreate( 29 __in const BA_FUNCTIONS_CREATE_ARGS* pArgs, 30 __inout BA_FUNCTIONS_CREATE_RESULTS* pResults 31 ) 32 { 33 HRESULT hr = S_OK; 34 35 // This is required to enable logging functions. 36 BalInitialize(pArgs->pEngine); 37 38 hr = CreateBAFunctions(vhInstance, pArgs, pResults); 39 BalExitOnFailure(hr, "Failed to create BAFunctions interface."); 40 41 LExit: 42 return hr; 43 } 44 45 extern "C" void WINAPI BAFunctionsDestroy( 46 __in const BA_FUNCTIONS_DESTROY_ARGS* /*pArgs*/, 47 __inout BA_FUNCTIONS_DESTROY_RESULTS* /*pResults*/ 48 ) 49 { 50 BalUninitialize(); 51 }