+#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;
+
+ wxSize extra_size = GetExtraControlSize();
+ // setting cx doesn't change the width of the dialog
+ lpdt->cx = extra_size.GetWidth();
+ // Dividing by 2 gives expected height on WinXP and Wine.
+ // I don't know why (MW).
+ lpdt->cy = extra_size.GetHeight() / 2;
+
+ // 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__
+