Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Queste funzioni forniscono il supporto per le implementazioni della mappa IUnknown COM.
| Funzione | Descrizione |
|---|---|
| AtlInternalQueryInterface | Delega all'oggetto IUnknown di un oggetto nonaggregato. |
| InlineIsEqualIUnknown | Genera codice efficiente per confrontare le interfacce con IUnknown. |
Requisiti
Intestazione: atlbase.h
AtlInternalQueryInterface
Recupera un puntatore all'interfaccia richiesta.
HRESULT AtlInternalQueryInterface(
void* pThis,
const _ATL_INTMAP_ENTRY* pEntries,
REFIID iid,
void** ppvObject);
Parametri
pThis
[in] Puntatore all'oggetto contenente la mappa COM di interfacce esposte a QueryInterface.
pEntries
[in] Matrice di _ATL_INTMAP_ENTRY strutture che accedono a una mappa delle interfacce disponibili.
iid
[in] GUID dell'interfaccia richiesta.
ppvObject
[out] Puntatore al puntatore dell'interfaccia specificato in iid o NULL se l'interfaccia non viene trovata.
Valore restituito
Uno dei valori HRESULT standard.
Osservazioni:
AtlInternalQueryInterface gestisce solo le interfacce nella tabella di mappe COM. Se l'oggetto è aggregato, AtlInternalQueryInterface non delega all'oggetto sconosciuto esterno. È possibile immettere le interfacce nella tabella mappa COM con la macro COM_INTERFACE_ENTRY o una delle relative varianti.
Esempio
// 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
Chiamare questa funzione per il caso speciale di test per IUnknown.
BOOL InlineIsEqualUnknown(REFGUID rguid1);
Parametri
rguid1
[in] GUID da confrontare con IID_IUnknown.