ตรวจสอบว่า คุณจำเป็นต้องรวมคอลัมน์แบบไดนามิก คุณอาจจำเป็นเนื่องจาก:
การใช้การรวมคอลัมน์แบบไดนามิก:
คง ATLCOLUMNINFO * _GetColumnInfo (โมฆะ * pThis, ULONG * pcCols)
ตัวอย่างต่อไปนี้แสดงฟังก์ชัน_GetColumnInfo?
/ / ตรวจสอบคุณสมบัติค่าสถานะสำหรับที่คั่นหนังสือ ถ้าจะตั้งค่า การตั้งค่าเป็นศูนย์
/ / แสดงลำดับรายการในคอลัมน์แมปกับข้อมูลที่คั่นหน้า
CAgentRowset * pRowset = (CAgentRowset *) pThis
CComQIPtrlt; IRowsetInfo และ IID_IRowsetInfo > spRowsetProps = pRowset
CDBPropIDSet set(DBPROPSET_ROWSET)
ตั้งค่าAddPropertyID(DBPROP_BOOKMARKS)
DBPROPSET * pPropSet = NULL
ULONG ulPropSet = 0
Hresult ใน hr
ถ้า (spRowsetProps)
hr = spRowsetProps - > GetProperties (1, & ชุด & ulPropSet และ pPropSet);
ถ้า (pPropSet)
{
CComVariant var = pPropSet - > .vValue rgProperties [0]
CoTaskMemFree (pPropSet - > rgProperties);
CoTaskMemFree(pPropSet)
ถ้า (SUCCEEDED(hr) & & (var.boolVal == VARIANT_TRUE))
{
ADD_COLUMN_ENTRY_EX (ulCols, OLESTR("Bookmark"), 0, sizeof(DWORD), DBTYPE_BYTES, 0, 0, GUID_NULL, CAgentMan, dwBookmark, DBCOLUMNFLAGS_ISBOOKMARK)
ulCols ++
}
}
/ / Next ตั้งคอลัมน์อื่น ๆ
ADD_COLUMN_ENTRY (ulCols, OLESTR("Command"), 1, 256, DBTYPE_STR, 0xFF, 0xFF, GUID_NULL, CAgentMan, szCommand)
ulCols ++
ADD_COLUMN_ENTRY (ulCols, OLESTR("Text"), 2, 256, DBTYPE_STR, 0xFF, 0xFF, GUID_NULL, CAgentMan, szText)
ulCols ++
ADD_COLUMN_ENTRY (ulCols, OLESTR("Command2"), 3, 256, DBTYPE_STR, 0xFF, 0xFF, GUID_NULL, CAgentMan, szCommand2)
ulCols ++
ADD_COLUMN_ENTRY (ulCols, OLESTR("Text2"), 4, 256, DBTYPE_STR, 0xFF, 0xFF, GUID_NULL, CAgentMan, szText2)
ulCols ++
ถ้า (pcCols ! = NULL)
* pcCols = ulCols
กลับ _rgColumns
}