Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Observação
A Active Template Library (ATL) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.
Estas funções fornecem suporte para implementações do COM Map IUnknown .
| Função | Description |
|---|---|
| AtlInternalQueryInterface | Delega para o IUnknown de um objeto não agregado. |
| InlineIsEqualIUnknown | Gera código eficiente para comparar interfaces com IUnknown. |
Requerimentos
Cabeçalho: atlbase.h
AtlInternalQueryInterface
Recupera um ponteiro para a interface solicitada.
HRESULT AtlInternalQueryInterface(
void* pThis,
const _ATL_INTMAP_ENTRY* pEntries,
REFIID iid,
void** ppvObject);
Parâmetros
pThis
[dentro] Um apontador para o objeto que contém o mapa COM das interfaces expostas a QueryInterface.
pEntradas
[dentro] Um conjunto de _ATL_INTMAP_ENTRY estruturas que acede a um mapa das interfaces disponíveis.
IID
[dentro] O GUID da interface a ser solicitada.
ppvObject
[fora] Um ponteiro para o ponteiro da interface especificado no iid, ou NULL se a interface não for encontrada.
Valor de retorno
Um dos valores padrão do HRESULT.
Observações
AtlInternalQueryInterface apenas trata de interfaces na tabela de mapas COM. Se o seu objeto for agregado, AtlInternalQueryInterface não delega ao desconhecido exterior. Pode introduzir interfaces na tabela de mapas COM com a COM_INTERFACE_ENTRY macro ou uma das suas variantes.
Example
// MyTimerProc is a callback function passed to SetTimer()
VOID CALLBACK MyTimerProc(HWND /*hwnd*/, UINT /*uMsg*/, UINT /*idEvent*/,
DWORD /*dwTime*/)
{
LPDISPATCH pDisp = NULL;
// gpMyCtrl is a global variable of type CMyCtrl*
// _GetEntries() is a static function you get with BEGIN_COM_MAP()
AtlInternalQueryInterface (gpMyCtrl, CMyCtrl::_GetEntries(), IID_IDispatch,
(LPVOID*)&pDisp);
//...
pDisp->Release ();
}
InlineIsEqualIUnknown
Chame-se a esta função, para o caso especial de testar para IUnknown.
BOOL InlineIsEqualUnknown(REFGUID rguid1);
Parâmetros
rguid1
[dentro] O GUID para comparar com IID_IUnknown.