Efeitos das opções em arquivos gerados

MYSNAPIN.H e MYSNAPIN.RGS são os únicos arquivos afetados pelas opções na segunda página.

MYSNAPIN.H

Cada interface, desde o IExtend * grupo de botões de rádio, que é verificado adiciona uma declaração de interface específica para o CMySnapInComponent classe. Por exemplo, escolhendo a interface IExtendControlbar adiciona a seguinte linha para a inicialização da classe member-wise:

iExtendControlbarImpllt pública;CMySnapInComponent & gt

e a seguinte linha para CMySnapInComponent do COM mapa:

COM_INTERFACE_ENTRY(IExtendControlbar)

Modificações semelhantes são feitas para CMySnapInComponent para o tipo de persistência escolhido.

Além das modificações acima, todos os métodos para a interface de persistência escolhidos são declarados no MYSNAPIN.H. por exemplo, o código a seguir é adicionado se você escolher IPersistStorage como o tipo de persistência:

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

//Additional Métodos de IPersistStorage
...

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

As modificações são semelhantes para o CMySnapIn classe.

Se a interface de ISnapInAbout é escolhida, é declarada como uma classe separada ( CMySnapInAbout ), e o padrão métodos são declarados.

MYSNAPIN.RGS

Se o snap-in é uma extensão do snap-in, o.Arquivo RGS gerado pelo assistente diferem ligeiramente o padrão. Especificamente, duas partes no NoRemove MMC seção será modificada para associar o objeto de snap-in de extensão com o snap-in do objeto extenso.

Por exemplo, o exemplo de seção a seguir é de um snap-in do objeto padrão.Arquivo RGS:

&NoRemove MMC
 nbsp;  {
        NoRemove Snapins
        {
            ForceRemove {ACC4CCCD-8C61-11D1-B017-00C04FB99436} =
            s «MySnapIn» {
                Val NameString = s 'MySnapIn'
                Val prestes = s '{ACC4CCCE-8C61-11D1-B017-00C04FB99436}'
                NodeTypes
                {
                    {ACC4CCCF-8C61-11D1-B017-00C04FB99436}
                }
                Autônomo
            }
        }
        NoRemove NodeTypes
        {
            ForceRemove {ACC4CCCF-8C61-11D1-B017-00C04FB99436}
            {
            }

}
    }

No entanto, para a extensão de snap-in, o NoRemove MMC difere de seção:

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