///////////////////////////////////////////////////////////////////////////// // // Dialog Info // IDD_TOACROPDF2 DLGINIT BEGIN IDC_PDF1, 0x376, 16, 0 0x0000, 0x0000, 0x0c00, 0x0000, 0x20f8, 0x0000, 0x19f1, 0x0000, 0 END
構造:
WORD nIDC; WORD nMsg; DWORD dwLen; BYTE data[dwLen]; // nMsg: // ATL_WM_OCC_LOADFROMSTREAM = 0x0376, // ATL_WM_OCC_LOADFROMSTORAGE = 0x0377, // ATL_WM_OCC_INITNEW = 0x0378, // ATL_WM_OCC_LOADFROMSTREAM_EX = 0x037A, // ATL_WM_OCC_LOADFROMSTORAGE_EX = 0x037B, // ATL_DISPID_DATASOURCE = 0x80010001, // ATL_DISPID_DATAFIELD = 0x80010002,
出典 (atlwin.h) より:
// Find the initialization data (Stream) for the control specified by the ID // If found, return the pointer into the data and the length of the data static DWORD FindCreateData(DWORD dwID, BYTE* pInitData, BYTE** pData) { while (pInitData) { // Read the DLGINIT header WORD nIDC = *((UNALIGNED WORD*)pInitData); pInitData += sizeof(WORD); BYTE* pTemp = pInitData; WORD nMsg = *((UNALIGNED WORD*)pInitData); pInitData += sizeof(WORD); DWORD dwLen = *((UNALIGNED DWORD*)pInitData); pInitData += sizeof(DWORD);
LOADFROMSTREAM が嫌で INITNEW にしたい場合は、つぎのようにしたら良いようです。
///////////////////////////////////////////////////////////////////////////// // // Dialog Info // IDD_TOACROPDF2 DLGINIT BEGIN IDC_PDF1, 0x378, 0, 0, 0 END
0 件のコメント:
コメントを投稿