Le dossier de l'utilisateur

L'enregistrement utilisateur fournit la structure qui représente les données de la colonne pour un ensemble de lignes de code et les données. Un enregistrement utilisateur peuvent être créé au moment de la compilation ou au moment de l'exécution. Lorsque vous créez un fournisseur à l'aide de l'Assistant objet ATL, l'Assistant crée un enregistrement utilisateur par défaut qui ressemble à ceci:

classe CWindowsFile :
   public WIN32_FIND_DATA
{
public :

BEGIN_PROVIDER_COLUMN_MAP(CWindowsFile)
   PROVIDER_COLUMN_ENTRY (« FileAttributes", 1, dwFileAttributes)
   PROVIDER_COLUMN_ENTRY ("FileSizeHigh", 2, nFileSizeHigh)
   PROVIDER_COLUMN_ENTRY ("FileSizeLow", 3, nFileSizeLow)
   PROVIDER_COLUMN_ENTRY ("NomFichier", 4, cFileName)
   PROVIDER_COLUMN_ENTRY (« AltFileName », 5, cAlternateFileName)
END_PROVIDER_COLUMN_MAP()

}

Les modèles du fournisseur OLE DB gérer tous les détails de OLE DB concernant les interactions avec le client. Pour acquérir les données des colonnes nécessaires pour une réponse, le fournisseur appelle la fonction GetColumnInfo , vous devez placer dans le dossier de l'utilisateur:

modèle lt ; classe t >
statique ATLCOLUMNINFO * GetColumnInfo(T* pThis, ULONG* pcCols)
 

L'aide de macros PROVIDER_COLUMN_MAP dans la création d'une fonction GetColumnInfo:

Quand un enregistrement utilisateur est créé au moment de l'exécution, GetColumnInfo utilise le paramètre pThis pour recevoir un pointeur vers une instance de rowset ou de command. Les commandes et les ensembles de lignes doit prendre en charge l'interface IColumnsInfo , afin que les informations de colonne peuvent être obtenues de ce pointeur.

Vous pouvez substituer explicitement GetColumnInfo dans le dossier de l'utilisateur, comme illustré ici:

modèle lt ; classe t >
statique ATLCOLUMNINFO * GetColumnInfo(T* pThis, ULONG* pcCols)
 

Ceci est équivalent à:

statique ATLCOLUMNINFO * GetColumnInfo(CommandClass* pThis, ULONG* pcCols)
statique ATLCOLUMNINFO * GetColumnInfo(RowsetClass* pThis, ULONG* pcCols)

CommandClass et RowsetClass sont la command et rowset qui utilisent l'enregistrement utilisateur.

Pour obtenir un exemple supplémentaire de comment substituer GetColumnInfo dans un enregistrement utilisateur, consultez création de fournisseur Simple accessible en lecture seule.

Retour à l'Architecture de modèle OLE DB fournisseur

Index