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