// dllmain.cpp : 定义 DLL 应用程序的入口点。
#include "pch.h"
#include <tchar.h>
#include <WtsApi32.h>
#pragma comment(lib, "WtsApi32.lib")
void ShowMessage(TCHAR* lpszMessage, TCHAR* lpszTitle)
{
// 获取当前的Session ID
DWORD dwSessionId = ::WTSGetActiveConsoleSessionId();
// 显示消息对话框
DWORD dwResponse = 0;
::WTSSendMessage(WTS_CURRENT_SERVER_HANDLE, dwSessionId,
lpszTitle, static_cast<DWORD>((_tcslen(lpszTitle) + 1) * sizeof(TCHAR)),
lpszMessage, static_cast<DWORD>((_tcslen(lpszMessage) + 1) * sizeof(TCHAR)),
MB_ICONINFORMATION, 0 /*wait indefinitely*/, &dwResponse, TRUE);
}
BOOL APIENTRY DllMain(HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
{
ShowMessage(TEXT("DLL_PROCESS_加载"), TEXT("Tips:"));
}
break;
case DLL_THREAD_ATTACH:
{
ShowMessage(TEXT("DLL_THREAD_加载"), TEXT("Tips:"));
}
break;
case DLL_THREAD_DETACH:
{
ShowMessage(TEXT("DLL_THREAD_销毁"), TEXT("Tips:"));
}
break;
case DLL_PROCESS_DETACH:
{
ShowMessage(TEXT("DLL_PROCESS_销毁"), TEXT("Tips:"));
}
break;
}
return TRUE;
}