Em MyProviderRS. H, o Assistente de objeto ATL cria um padrão de registro de usuário chamado CWindowsFile . Para lidar com as duas seqüências, editar CWindowsFile ou adicionar seu próprio registro de usuário, como mostrado aqui:
////////////////////////////////////////////////////////////////////////
Classe CAgentMan: WIN32_FIND_DATA pública
DWORD dwBookmark; nbsp; / / Adicionar esta
TCHAR szCommand [256]; / / Adicionar esta
TCHAR szText [256]; / / Adicionar esta
TCHAR szCommand2 [256]; / / Adicionar esta
TCHAR szText2 [256]; / / Adicionar esta
{
público:
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 operador = = (CAgentMan const & am) / / Esta é {opcional
retornar (lstrcmpi (cFileName, wf.cFileName) = = 0);
}
}
Os membros de dados szCommand e szText representam as duas seqüências, com szCommand2 e szText2 fornecendo colunas adicionais se necessário. O membro de dados dwBookmark não é necessário para esta simples read-provider only, mas será usado posteriormente para Adicionar uma interface IRowsetLocate. O operador de = = compara instâncias. (Implementação deste operador é opcional).
Para apoiar as duas seqüências, PROVIDER_COLUMN_MAP precisa modificação também. Substituir o PROVIDER_COLUMN_MAP mostrado acima com aquele mostrado aqui:
BEGI&N_PROVIDER_COLUMN_MAP()
nbsp; PROVIDER_COLUMN_ENTRY_STR(OLESTR("Command"), 1, 256, GUID_NULL, CAgentMan, szCommand)
PROVIDER_COLUMN_ENTRY_STR (OLESTR ("texto"), 2, 256, GUID_NULL, CAgentMan, szText) PROVIDER_COLUMN_ENTRY_STR(OLESTR("Command2"), 3, 256, GUID_NULL, CAgentMan, szCommand2)
PROVIDER_COLUMN_ENTRY_STR (OLESTR ("Text2"), 4, 256, GUID_NULL, CAgentMan, szText2)
END_PROVIDER_COLUMN_MAP()
Quando isso é feito, seu provedor deve estar pronto para compilar e executar. Para testar o provedor, você precisa de um consumidor com funcionalidade de correspondência. Implementar um consumidor simples mostra como criar um consumidor de teste. Execute teste de consumidor com o provedor. Verifique se que o consumidor teste recupera as seqüências de caracteres apropriadas do provedor ao clicar no botão executar na caixa de diálogo teste consumidor.
Depois de testar com êxito o provedor, você pode querer aumentar a sua funcionalidade ao implementar interfaces adicionais. Um exemplo é mostrado na próxima seção, aprimorando o provedor de somente leitura simples.