Per impostazione predefinita, la procedura guidata lo Snap-In genera un oggetto standard lo snap-in. Tuttavia, se si sceglie l'opzione di Snap-In di estensione, il codice generato sarà diverso da codice standard lo snap-in. In particolare, la differenza sta nell'oggetto classe dati dell'estensione dello snap-in ( CMySnapInData ). Ci sono due differenze principali, sia che si verificano nel file di intestazione della classe dati generati.
InitDataClass , in CMySnapInData . Il InitDataClass metodo fornisce un metodo sicuro per l'inizializzazione del m_pDataObject membro della classe di dati dell'estensione ( CMySnapInExtData ). L'implementazione predefinita memorizza nella cache un puntatore all'oggetto lo snap-in fase di estensione, nella m_pDataObject membri. Nella maggior parte dei casi, non è necessaria nessuna ulteriore azione.Tuttavia, se l'oggetto esteso snap-in di dati deve essere convertiti nel formato interno (che rappresentano i dati) prima di essere memorizzato nella cache, questo metodo fornisce un punto di accesso conveniente eseguire tale conversione.
CMySnapInExtData ). La macro, trovata prima la nuova mappa, crea un membro dati di tipo CMySnapInExtData nell'oggetto esteso lo snap-in. Dopo questa macro viene dichiarata la mappa di informazioni di nodo di estensione. La dichiarazione include le macro BEGIN_EXTENSION_SNAPIN_NODEINFO_MAP, END_EXTENSION_SNAPIN_NODEINFO_MAPed EXTENSION_SNAPIN_NODEINFO_ENTRY . Ogni voce nella mappa specifica il CMySnapInExtData classe.