Condividi tramite


Sfondo OLE: implementazione MFC

A causa della dimensione e della complessità delle API OLE non elaborate, chiamarle direttamente per scrivere applicazioni OLE può essere molto dispendioso in termini di tempo. L'obiettivo dell'implementazione di OLE da parte della libreria Microsoft Foundation Class è di ridurre la quantità di lavoro necessaria a scrivere applicazioni complete compatibili con OLE.

In questo articolo vengono illustrate le parti dell'API OLE che non sono state implementate all'interno di MFC. La discussione illustra anche come viene implementato il mapping alla sezione OLE di Windows SDK.

Parti di OLE non implementate dalla libreria di classi

Alcune interfacce e alcune funzionalità OLE non sono fornite direttamente da MFC. Se si desidera utilizzare queste funzionalità, è possibile chiamare direttamente l'API OLE.

Interfaccia IMoniker L'interfaccia IMoniker viene implementata dalla libreria di classi ,ad esempio la COleServerItem classe , ma non è stata esposta in precedenza al programmatore. Per altre informazioni su questa interfaccia, vedere Implementazioni del moniker OLE nella sezione OLE di Windows SDK. Tuttavia, vedere anche la classe CMonikerFile e CAsyncMonikerFile.

Interfacce IUnknown e IMarshal L'interfaccia IUnknown viene implementata dalla libreria di classi ma non è esposta al programmatore. L'interfaccia IMarshal non è implementata dalla libreria di classi, ma viene usata internamente. I server di automazione costruiti utilizzando la libreria di classi includono già funzionalità di marshalling incorporate.

I file docfile (file composti) sono parzialmente supportati dalla libreria di classi. Non è supportata alcuna delle funzioni che modificano direttamente i file compositi al di là della creazione. MFC usa la classe COleFileStream per supportare la manipolazione dei flussi con funzioni di file standard. Per altre informazioni, vedere l'articolo Contenitori: File composti.

I server in-process e i gestori oggetti in-process server e gestori oggetti consentono l'implementazione di oggetti COM (Visual Editing Data) o Full Component Object Model (COM) in una libreria a collegamento dinamico (DLL). A tale scopo, è possibile implementare la propria DLL chiamando direttamente l'API OLE. Tuttavia, se si scrive un server di automazione che non dispone di interfaccia utente, è possibile utilizzare AppWizard per trasformarlo in un server in-process e inserirlo completamente in una DLL. Per altre informazioni su questi argomenti, vedere Server di automazione.

Suggerimento

Il modo più semplice per implementare un server di automazione è di inserirlo in una DLL. MFC supporta questo approccio.

Per altre informazioni su come le classi OLE di Microsoft Foundation implementano le interfacce OLE, vedere Note tecniche MFC 38, 39 e 40.

Vedi anche

Sfondo OLE
Sfondo OLE: strategie di implementazione