Compartilhar via


AfxOleRegisterControlClass

Registra a classe de controle com o base de dados do registro do windows.

BOOL AFXAPI AfxOleRegisterControlClass( 
   HINSTANCE hInstance, 
   REFCLSID clsid, 
   LPCTSTR pszProgID, 
   UINT idTypeName, 
   UINT idBitmap, 
   int nRegFlags, 
   DWORD dwMiscStatus, 
   REFGUID tlid, 
   WORD wVerMajor, 
   WORD wVerMinor  
);

Parâmetros

  • hInstance
    O identificador da instância do módulo associado à classe do controle.

  • clsid
    A ID exclusiva da classe do controle.

  • pszProgID
    A ID exclusiva de programa do controle.

  • idTypeName
    A ID do recurso de cadeia de caracteres que contém um nome de usuário legível do controle.

  • idBitmap
    A ID do recurso de bitmap usado para representar o controlador OLE em uma barra de ferramentas ou em uma paleta.

  • nRegFlags
    Contém um ou mais dos seguintes sinalizadores:

    • afxRegInsertable permite que o controle seja exibido na caixa de diálogo do objeto de inserção para objetos OLE.

    • afxRegApartmentThreading define o modelo de threading no Registro a ThreadingModel=Apartment.

    • afxRegFreeThreading define o modelo de threading no Registro a ThreadingModel=Free.

      Você pode combinar os dois sinalizadores afxRegApartmentThreading e afxRegFreeThreading para definir ThreadingModel=Both. Consulte InprocServer32 em Windows SDK para obter mais informações sobre o registro do modelo de threading.

    Dica

    Em versões de MFC antes de MFC 4,2, o parâmetro de intnRegFlags fosse um parâmetro de BOOL , bInsertable, que permite ou recusasse o controle a ser inserido na caixa de diálogo do objeto de inserção.

  • dwMiscStatus
    Contém um ou mais dos seguintes sinalizadores de status (para obter uma descrição dos sinalizadores, consulte a enumeração de OLEMISC em Windows SDK):

    • OLEMISC_RECOMPOSEONRESIZE

    • OLEMISC_ONLYICONIC

    • OLEMISC_INSERTNOTREPLACE

    • OLEMISC_STATIC

    • OLEMISC_CANTLINKINSIDE

    • OLEMISC_CANLINKBYOLE1

    • OLEMISC_ISLINKOBJECT

    • OLEMISC_INSIDEOUT

    • OLEMISC_ACTIVATEWHENVISIBLE

    • OLEMISC_RENDERINGISDEVICEINDEPENDENT

    • OLEMISC_INVISIBLEATRUNTIME

    • OLEMISC_ALWAYSRUN

    • OLEMISC_ACTSLIKEBUTTON

    • OLEMISC_ACTSLIKELABEL

    • OLEMISC_NOUIACTIVATE

    • OLEMISC_ALIGNABLE

    • OLEMISC_IMEMODE

    • OLEMISC_SIMPLEFRAME

    • OLEMISC_SETCLIENTSITEFIRST

  • tlid
    A ID exclusiva da classe do controle.

  • wVerMajor
    O número de versão principal da classe do controle.

  • wVerMinor
    O número da versão secundária da classe do controle.

Valor de retorno

Diferente de zero se a classe de controle foi registrado; se não 0.

Comentários

Isso permite que o controle é usado por contêineres que são controlador OLE ciente. AfxOleRegisterControlClass atualiza o Registro com o nome do controle e o local no sistema e também define o modelo de threading que o controle oferece suporte a no Registro. Para obter mais informações, consulte Observação 64 técnica, “threading Apartamento- modelo em controladores OLE,” e Sobre processos e threads em Windows SDK.

Exemplo

// Member function implementation of class COleObjectFactory::UpdateRegistry  
//
BOOL CMyAxCtrl::CMyAxCtrlFactory::UpdateRegistry(BOOL bRegister)
{
    // TODO: Verify that your control follows apartment-model threading rules. 
    // Refer to MFC TechNote 64 for more information. 
    // If your control does not conform to the apartment-model rules, then 
    // you must modify the code below, changing the 6th parameter from 
    // afxRegInsertable | afxRegApartmentThreading to afxRegInsertable. 

    if (bRegister)
        return AfxOleRegisterControlClass(
            AfxGetInstanceHandle(),
            m_clsid,
            m_lpszProgID,
            IDS_NVC_MFCAXCTL,
            IDB_NVC_MFCAXCTL,
            afxRegInsertable | afxRegApartmentThreading,
            _dwMyOleMisc,
            _tlid,
            _wVerMajor,
            _wVerMinor);
    else 
        return AfxOleUnregisterClass(m_clsid, m_lpszProgID);
}

O exemplo acima mostra como AfxOleRegisterControlClass for chamado com o sinalizador para insertable e o sinalizador para o modelo ORed de STA. em conjunto para criar o sexto parâmetro:

          afxRegInsertable | afxRegApartmentThreading,

O controle será exibido na caixa de diálogo do objeto de inserção para contêineres habilitadas, e será STA. com reconhecimento. Os controles com reconhecimento de STA. devem assegurar que os dados estáticos da classe sejam protegidos por bloqueios, para que quando um controle em um STA. acessar os dados estáticos, não foram desabilitados por agendador antes que sejam concluídos, e outra instância da classe começa usando os mesmos dados estáticos. Todos os acessos a dados estáticos serão delimitados pelo código da seção crítica.

Requisitos

Header: <afxctl.h>

Consulte também

Referência

AfxOleRegisterPropertyPageClass

AfxOleRegisterTypeLib

AfxOleUnregisterClass

AfxOleUnregisterTypeLib

Conceitos

Macros e globais MFC