Native Dialogs are private to the program which invokes that dialog template and use a 'private struct' in the WINAPI. The dialog template consists of several user32 controls eg, button, checkbox) which then get arranged and resized by user32 and drawn by the graphics library 'GDI32'.
Other programs and libraries cannot invoke native dialogs, unlike 'Shared Dialogs', which are part of a module (typically a DLL file).
The last kind of dialog is a NULL Dialog, which most likley does not have a resource table, instead it is drawn directly by GDI32 based off of a msgbox dialog construct (a construct is kinda like a template but cannot be viewed by a resource editor tool). Other programs can however invoke a null dialog, typically as a msgbox dialog construct.
Note, while dialogs only exist outside of the user32 library, msgboxes only exist inside of user32 and a msgbox is technically a type of dialog as well as a user32 API function ('MsgBox()'), we tend not to call msgboxes dialogs to avoid confusion.
· 10 months ago