MYSNAPIN.H et MYSNAPIN.RGS sont les seuls fichiers affectés par les options sur la deuxième page.
Chaque interface, de la IExtend * groupe de bouton radio, qui est vérifié ajoute une déclaration de l'interface spécifique à la CMySnapInComponent classe. Par exemple, choisir l'interface IExtendControlbar ajoute la ligne suivante à l'initialisation de la classe de member-wise:
iExtendControlbarImpllt public ;CMySnapInComponent & gt
et la ligne suivante dans CMySnapInComponent du carte COM:
COM_INTERFACE_ENTRY(IExtendControlbar)
Des modifications sont apportées au CMySnapInComponent pour le type de persistance choisi.
En plus des modifications ci-dessus, toutes les méthodes de l'interface de persistance choisi sont déclarées dans MYSNAPIN.H. par exemple, le code suivant est ajouté si vous choisissez IPersistStorage comme le type de persistance:
STDMETHOD(GetClassID)(CLSID *pClassID)
{
nbsp ; ATLTRACE&NOTIMPL(_T("CMySnapInComponent::GetClassID")) ;
}
//Additional IPersistStorage méthodes
...
Virtual HRESULT STDMETHODCALLTYPE HandsOffStorage()
{
ATLTRACENOTIMPL(_T("CMySnapInComponent::HandsOffStorage")) ;
}
Les modifications sont semblables pour les CMySnapIn classe.
Si l'interface ISnapInAbout est choisi, une catégorie distincte est déclarée ( CMySnapInAbout ), et les méthodes standard sont déclarées.
Si le composant logiciel enfichable est une extension de composant logiciel enfichable, le.Le fichier RGS généré par l'Assistant diffère légèrement de la valeur par défaut. Plus précisément, deux portions de la NoRemove MMC section sera modifiée pour associer l'objet du composant logiciel enfichable d'extension à l'étendue enfichable objet.
Par exemple, l'exemple de l'article suivant est d'un composant logiciel enfichable objet par défaut.Fichier RGS:
&NoRemove MMC
nbsp ; {
NoRemove Snapins
{
ForceRemove {ACC4CCCD-8C61-11D1-B017-00C04FB99436} =
s « MySnapIn » {
Val NameString = s « MySnapIn »
Val = environ s « {ACC4CCCE-8C61-11D1-B017-00C04FB99436} »
NodeTypes
{
{ACC4CCCF-8C61-11D1-B017-00C04FB99436}
}
StandAlone
}
}
NoRemove NodeTypes
{
ForceRemove {ACC4CCCF-8C61-11D1-B017-00C04FB99436}
{
}
}
}
Toutefois, pour l'extension de composant logiciel enfichable, le NoRemove MMC diffère de l'article:
NoRemove MMC
{
NoRemove Snapins
{
ForceRemove {ACC4CCD5-8C61-11D1-B017-00C04FB99436} =
s 'MySnapInDataExt1'
{
val NameString = s 'MySnapInDataExt1'
val About = s '{ACC4CCD6-8C61-11D1-B017-00C04FB99436}'
}
}
NoRemove NodeTypes
{
NoRemove {}
{
NoRemove Extensions
{
NoRemove PropertySheet
{
val {ACC4CCD5-8C61-11D1-B017-00C04FB99436} =
s 'MySnapInDataExt1'
}
NoRemove ToolBar
{
val {ACC4CCD5-8C61-11D1-B017-00C04FB99436} =
s 'MySnapInDataExt1'
}
}
}
}
}