127 lines
2.3 KiB
C
127 lines
2.3 KiB
C
/*++
|
||
|
||
Copyright (c) 1990 Microsoft Corporation
|
||
|
||
Module Name:
|
||
|
||
dllinit.c
|
||
|
||
Abstract:
|
||
|
||
This module contians the DLL attach/detach event entry point for
|
||
the Stadard C2 function dll
|
||
|
||
Author:
|
||
|
||
Bob Watson (a-robw) Dec-94
|
||
|
||
Revision History:
|
||
|
||
--*/
|
||
|
||
#include <windows.h>
|
||
#include <c2inc.h>
|
||
#include <c2dll.h>
|
||
#include "c2funcs.h"
|
||
#include "c2funres.h"
|
||
|
||
static HANDLE ThisDLLHandle = NULL;
|
||
|
||
int
|
||
DisplayDllMessageBox (
|
||
IN HWND hWnd,
|
||
IN UINT nMessageId,
|
||
IN UINT nTitleId,
|
||
IN UINT nStyle
|
||
)
|
||
/*++
|
||
|
||
Routine Description:
|
||
|
||
Displays a message box displaying text from the DLL's resource file, as
|
||
opposed to literal strings.
|
||
|
||
Arguments:
|
||
|
||
IN HWND hWnd window handle to parent window
|
||
IN UINT nMessageId String Resource ID of message text to display
|
||
IN UINT nTitleId String Resource ID of title text to display
|
||
IN UINT nStyle MB style bits (see MessageBox function)
|
||
|
||
Return Value:
|
||
|
||
ID of button pressed to exit message box
|
||
|
||
--*/
|
||
{
|
||
LPTSTR szMessageText = NULL;
|
||
LPTSTR szTitleText = NULL;
|
||
HINSTANCE hInst;
|
||
int nReturn;
|
||
|
||
hInst = GetDllInstance();
|
||
|
||
szMessageText = GLOBAL_ALLOC (SMALL_BUFFER_BYTES);
|
||
szTitleText = GLOBAL_ALLOC (SMALL_BUFFER_BYTES);
|
||
|
||
if ((szMessageText != NULL) &&
|
||
(szTitleText != NULL)) {
|
||
LoadString (hInst,
|
||
((nTitleId != 0) ? nTitleId : IDS_DLL_NAME),
|
||
szTitleText,
|
||
SMALL_BUFFER_SIZE -1);
|
||
|
||
LoadString (hInst,
|
||
nMessageId,
|
||
szMessageText,
|
||
SMALL_BUFFER_SIZE - 1);
|
||
|
||
nReturn = MessageBox (
|
||
hWnd,
|
||
szMessageText,
|
||
szTitleText,
|
||
nStyle);
|
||
} else {
|
||
nReturn = IDCANCEL;
|
||
}
|
||
|
||
GLOBAL_FREE_IF_ALLOC (szMessageText);
|
||
GLOBAL_FREE_IF_ALLOC (szTitleText);
|
||
|
||
return nReturn;
|
||
}
|
||
|
||
HINSTANCE
|
||
GetDllInstance (
|
||
)
|
||
{
|
||
return (HINSTANCE)ThisDLLHandle;
|
||
}
|
||
|
||
BOOL
|
||
DLLInit(
|
||
IN HANDLE DLLHandle,
|
||
IN DWORD Reason,
|
||
IN LPVOID ReservedAndUnused
|
||
)
|
||
{
|
||
ReservedAndUnused;
|
||
|
||
switch(Reason) {
|
||
case DLL_PROCESS_ATTACH:
|
||
|
||
ThisDLLHandle = DLLHandle;
|
||
break;
|
||
|
||
case DLL_PROCESS_DETACH:
|
||
break ;
|
||
|
||
case DLL_THREAD_ATTACH:
|
||
case DLL_THREAD_DETACH:
|
||
|
||
break;
|
||
}
|
||
|
||
return(TRUE);
|
||
}
|
||
|