Condividi tramite


Sfondo OLE: implementazione MFC

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

Questo articolo illustra le parti delle API OLE che non sono state implementate all'interno di MFC. La discussione illustra inoltre come avviene la mappatura tra le parti implementate e la 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 desiderano utilizzare queste funzionalità, è possibile chiamare direttamente le API OLE.

  • Interfaccia IMoniker
    L'interfaccia IMoniker viene implementata dalla libreria di classi (ad esempio la classe di COleServerItem ) ma non è stata precedentemente esposta al programmatore. Per ulteriori informazioni su questa interfaccia, vedere le implementazioni OLE di Moniker nella sezione OLE di Windows SDK. Tuttavia, vedere anche le classi CMonikerFile e CAsyncMonikerFile.

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

  • Docfiles (file compositi)
    I file compositi sono parzialmente supportati dalla libreria di classi. Non è supportata nessuna delle funzioni che modificano direttamente i file compositi oltre la creazione. MFC utilizza la classe COleFileStream per supportare la modifica dei flussi con le funzioni di file standard. Per ulteriori informazioni, vedere l'articolo Contenitori: File compositi.

  • Server in-process e gestori di oggetti
    I server in-process e gestori di oggetti consentono l'implementazione dei dati di modifica visiva o degli oggetti completi Component Object Model (COM) in una libreria a collegamento dinamico (DLL). A tale scopo, è possibile implementare la propria DLL chiamando direttamente le 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 ulteriori 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 ulteriori informazioni su come le classi OLE Microsoft Foundation implementano le interfacce OLE, vedere le note tecniche MFC 38, 39 e 40.

Vedere anche

Concetti

Sfondo OLE

Sfondo OLE: strategie di implementazione