Dinamik sütunu bağlama gerçekten ihtiyacınız olduğundan emin olun. Çünkü gerekebilir:
Dinamik sütunu bağlama uygulamak için:
statik ATLCOLUMNINFO * (void * pThis, ulong * pcCols) _GetColumnInfo
Aşağıdaki örnek, _GetColumnInfo işlev gösterir.
/ / Kontrol eğer onun sıfıra ayarlayın yer imleri, özellik bayrağı
/ sıra giriş sütun imi bilgileri göster.
CAgentRowset * pRowset (CAgentRowset *) pThis; =
CComQIPtrlt; IRowsetInfo & IID_IRowsetInfo > spRowsetProps = pRowset;
CDBPropIDSet set(DBPROPSET_ROWSET);
ayarlayın.AddPropertyID(DBPROP_BOOKMARKS);
dbpropset * pPropSet = null;
ulong ulPropSet = 0;
hresult hr;
Eğer (spRowsetProps)
hr = spRowsetProps - > GetProperties (1 set, ulPropSet & pPropSet);
Eğer (pPropSet)
{
CComVariant var pPropSet = > rgProperties [0] .vvalue;
CoTaskMemFree (pPropSet - > rgProperties);
CoTaskMemFree(pPropSet);
Eğer (SUCCEEDED(hr) & & (var.boolVal varıant_true ==))
{
add_column_entry_ex (ulCols, OLESTR("Bookmark"), 0, sizeof(DWORD), dbtype_bytes, 0, 0, GUID_NULL, CAgentMan, dwBookmark, DBCOLUMNFLAGS_ISBOOKMARK)
ulCols ++;
}
}
/ / Sonraki diğer sütunlar ayarlayın.
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 ++;
Eğer (pcCols! = null)
* pcCols = ulCols;
return _rgColumns;
}