Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Registra a classe de controle com o banco de dados de 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 de instância do módulo associado com a classe de controle.clsid
Identificação exclusiva de classe do controle.pszProgID
A identificação de programa exclusivo do controle.idTypeName
A identificação de recurso de cadeia de caracteres que contém um nome de tipo de usuário-legível para o controle.idBitmap
A identificação de recurso do bitmap usado para representar o controle OLE em uma barra de ferramentas ou paleta.nRegFlags
Contém um ou mais dos sinalizadores a seguir:afxRegInsertablePermite que o controle apareça na caixa de diálogo Inserir objeto para objetos OLE.
afxRegApartmentThreadingDefine o modelo de segmentação no registro para ThreadingModel = Apartment.
afxRegFreeThreadingDefine o modelo de segmentação no registro para ThreadingModel = livre.
Você pode combinar dois sinalizadores afxRegApartmentThreading e afxRegFreeThreading para definir a ThreadingModel = ambos.Consulte InprocServer32 na Windows SDK para obter mais informações sobre registro de modelo de threading.
ObservaçãoNas versões do MFC antes MFC 4.2, o intnRegFlags parâmetro foi um BOOL parâmetro, bInsertable, que permitido ou proibido o controle a ser inserido na caixa de diálogo Inserir objeto.
dwMiscStatus
Contém um ou mais dos seguintes sinalizadores de status (para uma descrição dos sinalizadores, consulte OLEMISC enumeração na 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 identificação exclusiva da classe control.wVerMajor
O número de versão principal da classe control.wVerMinor
O número de versão secundária da classe control.
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 estão ciente de controle OLE.AfxOleRegisterControlClassatualiza o registro com nome e local do sistema de controle e também define o modelo de threading suporta o controle no registro.Para obter mais informações, consulte técnico 64 anotação, "Modelo Apartment Threading no OLE controles", e sobre processos e Threads na 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 sinalizador para inseríveis e o sinalizador de apartamento 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 habilitados e ele estará ciente de modelo de apartment.Controles cientes de modelo de apartment devem garantir que dados são protegidos por bloqueios, de classe estática para que enquanto um controle em um apartamento estiver acessando dados estáticos, ele não é desativado pelo Agendador antes de terminar e outra instância da mesma classe inicia usando os mesmos dados estáticos.Os acessos aos dados estáticos são envolvidos por código de seção crítica.
Requisitos
Cabeçalho: <afxctl.h>
Consulte também
Referência
AfxOleRegisterPropertyPageClass