Podstawy OLE: implementacja MFC
Ze względu na rozmiar i złożoność nieprzetworzonego interfejsu API OLE wywoływanie go bezpośrednio w celu pisania aplikacji OLE może być bardzo czasochłonne. Celem implementacji biblioteki klas Microsoft Foundation OLE jest zmniejszenie ilości pracy, którą należy wykonać w celu pisania w pełni funkcjonalnych aplikacji obsługujących ole.
W tym artykule wyjaśniono części interfejsu API OLE, które nie zostały zaimplementowane w MFC. W dyskusji wyjaśniono również, jak zaimplementowano mapy do sekcji OLE zestawu Windows SDK.
Części ole nie zaimplementowane przez bibliotekę klas
Kilka interfejsów i funkcji OLE nie są bezpośrednio udostępniane przez MFC. Jeśli chcesz używać tych funkcji, możesz wywołać interfejs API OLE bezpośrednio.
IMoniker Interface Interfejs IMoniker
jest implementowany przez bibliotekę klas (na przykład COleServerItem
klasę), ale nie został wcześniej uwidoczniony dla programisty. Aby uzyskać więcej informacji na temat tego interfejsu, zobacz Implementacje OLE Moniker w sekcji OLE zestawu Windows SDK. Zobacz jednak również klasy CMonikerFile i CAsyncMonikerFile.
Interfejsy IUnknown
IUnknown i IMarshal Interfejsy są implementowane przez bibliotekę klas, ale nie są widoczne dla programisty. Interfejs IMarshal
nie jest implementowany przez bibliotekę klas, ale jest używany wewnętrznie. Serwery automatyzacji utworzone przy użyciu biblioteki klas mają już wbudowane funkcje marshalingu.
Pliki złożone Docfiles (Pliki złożone) są częściowo obsługiwane przez bibliotekę klas. Żadna z funkcji, które bezpośrednio manipulują plikami złożonymi poza tworzeniem, nie są obsługiwane. MFC używa klasy COleFileStream
do obsługi manipulowania strumieniami przy użyciu standardowych funkcji plików. Aby uzyskać więcej informacji, zobacz artykuł Kontenery: pliki złożone.
Serwery przetwarzania i procedury obsługi obiektów w przetwarzaniu serwery i programy obsługi obiektów umożliwiają implementację danych edycji wizualnej lub pełnych obiektów modelu obiektów składników (COM) w bibliotece łączy dynamicznych (DLL). W tym celu możesz zaimplementować bibliotekę DLL przez bezpośrednie wywołanie interfejsu API OLE. Jeśli jednak piszesz serwer usługi Automation i serwer nie ma interfejsu użytkownika, możesz użyć usługi AppWizard, aby serwer był serwerem w procesie i umieścić go całkowicie w dll. Aby uzyskać więcej informacji na temat tych tematów, zobacz Serwery automatyzacji.
Napiwek
Najprostszym sposobem zaimplementowania serwera usługi Automation jest umieszczenie go w dll. MFC obsługuje to podejście.
Aby uzyskać więcej informacji na temat sposobu implementowania interfejsów OLE przez klasy OLE programu Microsoft Foundation, zobacz MFC Technical Notes 38, 39 i 40.