+#ifndef __WXWINCE__
+ GlobalPtr hgbl;
+ if ( HasExtraControlCreator() )
+ {
+ msw_flags |= OFN_ENABLETEMPLATEHANDLE;
+
+ hgbl.Init(256, GMEM_ZEROINIT);
+ GlobalPtrLock hgblLock(hgbl);
+ LPDLGTEMPLATE lpdt = static_cast<LPDLGTEMPLATE>(hgblLock.Get());
+
+ // Define a dialog box.
+
+ lpdt->style = DS_CONTROL | WS_CHILD | WS_CLIPSIBLINGS;
+ lpdt->cdit = 0; // Number of controls
+ lpdt->x = 0;
+ lpdt->y = 0;
+
+ // convert the size of the extra controls to the dialog units
+ const wxSize extraSize = GetExtraControlSize();
+ const LONG baseUnits = ::GetDialogBaseUnits();
+ lpdt->cx = ::MulDiv(extraSize.x, 4, LOWORD(baseUnits));
+ lpdt->cy = ::MulDiv(extraSize.y, 8, HIWORD(baseUnits));
+
+ // after the DLGTEMPLATE there are 3 additional WORDs for dialog menu,
+ // class and title, all three set to zeros.
+
+ of.hInstance = (HINSTANCE)lpdt;
+ }
+#endif // __WXWINCE__
+