En MyProviderRS.h, el Asistente para objetos ATL crea un valor predeterminado denominado registro de usuario CWindowsFile . Para manejar las dos cadenas, o bien editar CWindowsFile o agregar su propio registro de usuario, como se muestra aquí:
////////////////////////////////////////////////////////////////////////
clase CAgentMan: WIN32_FIND_DATA pública
DWORD dwBookmark; nbsp; / / Agregar esto
TCHAR szCommand [256]; / / Agregar esto
TCHAR szText [256]; / / Agregar esto
TCHAR szCommand2 [256]; / / Agregar esto
TCHAR szText2 [256]; / / Agregar esto
{
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 == (const CAgentMan & am) / / esto es {opcional
Retorno (lstrcmpi cFileName (wf.cFileName) == 0);
}
}
Los miembros de datos szCommand y szText representan las dos cadenas, con szCommand2 y szText2 proporcionar columnas adicionales si es necesario. El miembro de datos dwBookmark no es necesario para este proveedor simplemente de sólo lectura, pero se utilizará más tarde para Agregar una interfaz IRowsetLocate. El operador == compara instancias. (Aplicar este operador es opcional).
En apoyo de las dos cadenas, la PROVIDER_COLUMN_MAP necesita modificación así. Reemplazar el PROVIDER_COLUMN_MAP arriba con la que se muestra aquí:
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 ("texto2"), 4, 256, GUID_NULL, CAgentMan, szText2)
END_PROVIDER_COLUMN_MAP()
Cuando esto sucede, el proveedor debería estar listo para compilar y ejecutar. Para probar el proveedor, necesita un consumidor con funcionalidad de coincidencia. Implementar un consumidor sencillo muestra cómo crear tal un consumidor de prueba. Ejecutar el consumidor de prueba con el proveedor. Compruebe que el consumidor prueba recupera las cadenas adecuadas del proveedor al hacer clic en el botón ejecutar en el cuadro de diálogo de consumidor de prueba.
Una vez que han probado con éxito su proveedor, puede que desee mejorar su funcionalidad mediante la implementación de interfaces adicionales. Un ejemplo se muestra en la siguiente sección, mejorar el proveedor sencillo de sólo lectura.