Compartilhar via


AfxOleRegisterControlClass

Registra a classe de controle com o banco de dados de inscrição 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 do módulo associado com a classe de controle.

  • clsid
    ID exclusiva de classe do controle.

  • pszProgID
    ID exclusiva do programa do controle.

  • idTypeName
    A ID de recurso da seqüência de caracteres que contém um nome de tipo pode ser entendido pelo usuário para o controle.

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

  • nRegFlags
    Contém um ou mais dos sinalizadores a seguir:

    • afxRegInsertable   Permite que o controle apareça na caixa de diálogo Inserir objeto para objetos OLE.

    • afxRegApartmentThreading   Define o modelo de threading no registro para ThreadingModel = Apartment.

    • afxRegFreeThreading   Define o modelo de threading no registro para ThreadingModel = disponível.

      Você pode agrupar os dois sinalizadores afxRegApartmentThreading e afxRegFreeThreading Para conjunto ThreadingModel = ambos. See InprocServer32 in the Windows SDK Para obter mais informações sobre inscrição de modelo de threading.

    Observação:

    Nas versões do MFC antes 4.2 MFC, o int nRegFlags parameter was a BOOL parameter, bInsertable, that allowed or disallowed the control to be inserted from the Insert Object dialog box.

  • dwMiscStatus
    Contém um ou mais dos seguintes sinalizadores de status (para obter uma descrição dos sinalizadores, consulte OLEMISC enumeração no 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 de controle.

  • wVerMajor
    O número da versão primária da classe de controle.

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

Valor de retorno

Diferente de zero se a classe de controle foi registrada; caso contrário, 0.

Comentários

Isso permite que o controle a ser usado por recipientes que estão ciente de controle OLE.AfxOleRegisterControlClass atualiza o registro com nome e local no sistema do controle e também define o modelo de segmentação permite o controle no registro. Para obter mais informações, consulte Observação técnica 64, "Apartment Threading em controles de OLE modelo" e Sobre processos e threads in the 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 demonstra como AfxOleRegisterControlClass é chamado com o sinalizar para inseríveis e o sinalizar de apartment ORed juntos para criar o sexto parâmetro de modelo:

          afxRegInsertable | afxRegApartmentThreading,

O controle será exibido na caixa de diálogo Inserir objeto para recipientes ativados e será compatível com o modelo apartment.Controles com reconhecimento de modelo de apartment devem garantir que dados são protegidos por bloqueios, de classe estática para que enquanto um controle em um compartimento estiver acessando dados estático, ele não estiver desabilitado pelo Agendador antes que termina e outra instância da mesma classe inicia usando os mesmos dados estático.Os acessos aos dados estático são envolvidos por código de seção crítica.

Requisitos

Cabeçalho:<afxctl.h>

Consulte também

Conceitos

Macros do MFC e globais

Referência

AfxOleRegisterPropertyPageClass

AfxOleRegisterTypeLib

AfxOleUnregisterClass

AfxOleUnregisterTypeLib