PRB: Fatal Exit Code 0x0019 Definition and Causes

ID Number: Q66945

3.00

WINDOWS

SYMPTOMS

After an implicitly loaded dynamic-link library (DLL) attempts to

create a window in its initialization procedure, a Fatal Exit

0x0019 occurs.

CAUSE

When an application is loaded, Windows loads any DLLs that are

implicitly referenced by that application prior to initializing the

application's task. Part of task initialization is creating a

message queue for that application. By the time the application's

WinMain() function is called, the message queue has been created.

Any window created by a DLL uses the message queue of the

application task using that DLL. If an implicitly loaded DLL

creates a window in its initialization code (that is, LibMain)

there is no message queue for it to use. When Windows detects this

situation, it signals Fatal Exit 0x0019.

RESOLUTION

If the DLL must display a message during initialization, it must

either be explicitly loaded from the application using

LoadLibrary() or the DLL should export a function that can be

called from the WinMain() procedure of the application. By the time

WinMain() is executed, the window queue has been created.

More Information:

In Windows 3.0, a network driver is the only DLL that can create a

window during initialization. The network driver is loaded after the

first application task has been initialized (that is, the shell), and

any dialog box displayed by a network driver uses the message queue of

the shell application.