In MyProviderRS, guidata oggetto ATL crea un predefinito Record utente chiamato CWindowsFile . Per gestire le due stringhe, o modifica CWindowsFile o aggiungere un Record utente, come illustrato di seguito:
////////////////////////////////////////////////////////////////////////
classe CAgentMan: WIN32_FIND_DATA pubblica
DWORD dwBookmark; nbsp; / / Aggiungi questo
TCHAR szCommand [256]; / / Aggiungi questo
TCHAR szText [256]; / / Aggiungi questo
Mentre szCommand2 TCHAR [256]; / / Aggiungi questo
TCHAR szText2 [256]; / / Aggiungi questo
{
pubblica:
BEGIN_PROVIDER_COLUMN_MAP(CAgentMan)
PROVIDER_COLUMN_ENTRY ("FileAttributes", 1, dwFileAttributes)
PROVIDER_COLUMN_ENTRY ("FileSizeHigh", 2, nFileSizeHigh)
PROVIDER_COLUMN_ENTRY ("FileSizeLow", 3, nFileSizeLow)
PROVIDER_COLUMN_ENTRY ("FileName", 4, cFileName)
PROVIDER_COLUMN_ENTRY ("AltFileName", 5, cAlternateFileName)
END_PROVIDER_COLUMN_MAP()
bool operator = = (const CAgentMan & am) / / questo č opzionale {
ritorno (lstrcmpi (cFileName, wf.cFileName) = = 0);
}
}
I membri dati szCommand e szText rappresentano le due stringhe, con szCommand2 e szText2 forniscono le ulteriori colonne se necessario. Il membro dati dwBookmark non č necessario per questo provider semplice di sola lettura, ma verrą utilizzato in seguito per aggiungere un'interfaccia IRowsetLocate. L'operatore = = confronta istanze. (Attuazione di questo operatore č facoltativo).
Per supportare le due stringhe, PROVIDER_COLUMN_MAP deve modifica pure. Sostituire PROVIDER_COLUMN_MAP sopra indicato con quello mostrato qui:
BEGI&N_PROVIDER_COLUMN_MAP()
nbsp; PROVIDER_COLUMN_ENTRY_STR(OLESTR("Command"), 1, 256, GUID_NULL, CAgentMan, szCommand)
PROVIDER_COLUMN_ENTRY_STR (OLESTR ("Text"), 2, 256, GUID_NULL, CAgentMan, szText) PROVIDER_COLUMN_ENTRY_STR(OLESTR("Command2"), 3, 256, GUID_NULL, CAgentMan, mentre szCommand2)
PROVIDER_COLUMN_ENTRY_STR (OLESTR ("Text2"), 4, 256, GUID_NULL, CAgentMan, szText2)
END_PROVIDER_COLUMN_MAP()
Quando questo č fatto, il provider dovrebbe essere pronto per compilare ed eseguire. Per testare il provider, č necessario un consumatore con funzionalitą di corrispondenza. Implementazione di un Consumer semplice mostra come creare tali un consumatore di prova. Eseguire il test di consumatore con il provider. Verificare che il consumatore prova recupera le stringhe corretta dal provider quando clicchi il pulsante Esegui nella finestra di dialogo prova dei consumatori.
Una volta che hanno sperimentato con successo il provider, si desidera aumentare la sua funzionalitą mediante l'implementazione di interfacce aggiuntive. Un esempio č illustrato nella sezione successiva, miglioramento di un Provider semplice.