#include #include DialogTemplate::operator DLGTEMPLATE *(void) { DLGTEMPLATE *lpDLGTEMPLATE=0; DLGITEMTEMPLATE *lpDLGITEMTEMPLATE; BYTE *lpCharByte; DWORD sizeData; if(!itemCount())return lpDLGTEMPLATE; sizeData=MaxTemplateBytes; mItemData.size(sizeData,GMEM_FIXED|GMEM_ZEROINIT); lpDLGTEMPLATE=(DLGTEMPLATE*)((BYTE*)&mItemData[0]); ::memcpy(lpDLGTEMPLATE,&((DLGTEMPLATE&)*this),sizeof(DLGTEMPLATE)); lpCharByte=((BYTE*)lpDLGTEMPLATE)+sizeof(DLGTEMPLATE); *((WORD*)lpCharByte)=0x0000; // no menu lpCharByte+=sizeof(WORD); if(className().isNull()){*((WORD*)lpCharByte)=0x0000;lpCharByte+=sizeof(WORD);} else lpCharByte=copyString(lpCharByte,className()); if(titleText().isNull()){*((WORD*)lpCharByte)=0x0000;lpCharByte+=sizeof(WORD);} else lpCharByte=copyString(lpCharByte,titleText()); if(style()&DS_SETFONT) { *((WORD*)lpCharByte)=pointSize(); lpCharByte+=sizeof(WORD); lpCharByte=copyString(lpCharByte,typeFace()); } lpCharByte=alignBoundary(lpCharByte); lpDLGITEMTEMPLATE=(DLGITEMTEMPLATE*)lpCharByte; for(short itemIndex=0;itemIndex