CreateDialogIndirectParam function Null safety user32

int CreateDialogIndirectParam (
  1. int hInstance,
  2. Pointer<DLGTEMPLATE> lpTemplate,
  3. int hWndParent,
  4. Pointer<NativeFunction<DlgProc>> lpDialogFunc,
  5. int dwInitParam
)

Creates a modeless dialog box from a dialog box template in memory. Before displaying the dialog box, the function passes an application-defined value to the dialog box procedure as the lParam parameter of the WM_INITDIALOG message. An application can use this value to initialize dialog box controls.

HWND CreateDialogIndirectParamW(
  HINSTANCE       hInstance,
  LPCDLGTEMPLATEW lpTemplate,
  HWND            hWndParent,
  DLGPROC         lpDialogFunc,
  LPARAM          dwInitParam
);

Implementation

int CreateDialogIndirectParam(
    int hInstance,
    Pointer<DLGTEMPLATE> lpTemplate,
    int hWndParent,
    Pointer<NativeFunction<DlgProc>> lpDialogFunc,
    int dwInitParam) {
  final _CreateDialogIndirectParam = _user32.lookupFunction<
      IntPtr Function(
          IntPtr hInstance,
          Pointer<DLGTEMPLATE> lpTemplate,
          IntPtr hWndParent,
          Pointer<NativeFunction<DlgProc>> lpDialogFunc,
          IntPtr dwInitParam),
      int Function(
          int hInstance,
          Pointer<DLGTEMPLATE> lpTemplate,
          int hWndParent,
          Pointer<NativeFunction<DlgProc>> lpDialogFunc,
          int dwInitParam)>('CreateDialogIndirectParamW');
  return _CreateDialogIndirectParam(
      hInstance, lpTemplate, hWndParent, lpDialogFunc, dwInitParam);
}