Efectos de las opciones de los archivos generados

MYSNAPIN.H y MYSNAPIN.RGS son los únicos afectados por las opciones en la segunda página.

MYSNAPIN.H

Cada interfaz, desde el IExtend * grupo de botones de radio, que se comprueba agrega una declaración de esa interfaz específica para la CMySnapInComponent clase. Por ejemplo, elegir la interfaz IExtendControlbar agrega la siguiente línea a la inicialización de la clase member-wise:

iExtendControlbarImpllt pública;CMySnapInComponent & gt

y la línea siguiente a CMySnapInComponent de mapa COM:

COM_INTERFACE_ENTRY(IExtendControlbar)

Se realizan modificaciones similares en CMySnapInComponent para el tipo de persistencia elegido.

Además de las modificaciones anteriores, todos los métodos de la interfaz de persistencia elegido se declaran en MYSNAPIN.H. por ejemplo, se agrega el siguiente código si selecciona IPersistStorage como el tipo de persistencia:

STDMETHOD(GetClassID)(CLSID *pClassID)
{
 nbsp;  ATLTRACE&NOTIMPL(_T("CMySnapInComponent::GetClassID"));
}

métodos de IPersistStorage de //Additional
...

virtual HRESULT STDMETHODCALLTYPE HandsOffStorage()
{
    ATLTRACENOTIMPL(_T("CMySnapInComponent::HandsOffStorage"));
}

Las modificaciones son similares para la CMySnapIn clase.

Si se elige la interfaz ISnapInAbout , se declara una clase independiente ( CMySnapInAbout ), y se declaran los métodos estándar.

MYSNAPIN.RGS

Si el complemento es una extensión snap-in, el.Archivo RGS generado por el asistente difieren ligeramente de la predeterminada. Específicamente, dos porcion en el NoRemove MMC sección se modificará para asociar el objeto de complemento de extensión con el objeto de complemento extendido.

Por ejemplo, el siguiente ejemplo de sección es de un complemento de objeto predeterminado.Archivo RGS:

&NoRemove MMC
 nbsp;  {
        Complementos NoRemove
        {
            ForceRemove {ACC4CCCD-8C61-11D1-B017-00C04FB99436} =
            s 'MySnapIn' {}
                Val NameString = s 'MySnapIn'
                Val unos = s '{ACC4CCCE-8C61-11D1-B017-00C04FB99436}'
                NodeTypes
                {
                    {ACC4CCCF-8C61-11D1-B017-00C04FB99436}
                }
                Independiente
            }
        }
        NoRemove NodeTypes
        {
            ForceRemove {ACC4CCCF-8C61-11D1-B017-00C04FB99436}
            {
            }

}
    }

Sin embargo, para la extensión snap-in, la NoRemove MMC difiere de la sección:

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'
                    }
                }
            }

        }
    }

Index