Click to open or copy the PROVIDER project files.
PROVIDER demonstrates an OLE DB provider that has more than one result set type. The OLE DB Provider wizard generates a provider that has a single result set based on a Win32 directory entry. This sample demonstrates how to enhance this functionality to include a Win32 registry entry.
The important classes in the sample are CDirRowset
, CWindowsFile
, CRegRowset
, and CWinRegKey
. Both CDirRowset
and CRegRowset
have a method Execute.\
that populates the result set. The result set acquires its shape from the data class. The data classes in this example (CWindowsFile
and CWinRegKey
) both contain PROVIDER_COLUMN_MAPs that determines what data will be returned to the user when the user requests a rowset. The file Rowset.cpp has an implementation for ICommand::Execute. The implementation of this function determines if a particular command text is prefixed by REG:. If it has such a prefix, it uses CRowsetImpl::CreateRowset to create a rowset that contains registry key information (CRegRowset
); otherwise, it creates the standard wizard generated (CDirRowset
).
For more information, see Using the OLE DB Provider Templates.