Klasa COleClientItem
Definiuje interfejs kontenera dla elementów OLE.
Składnia
class COleClientItem : public CDocItem
Elementy członkowskie
Konstruktory publiczne
Nazwa/nazwisko | opis |
---|---|
COleClientItem::COleClientItem | COleClientItem Tworzy obiekt. |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
COleClientItem::Activate | Otwiera element OLE dla operacji, a następnie wykonuje określone zlecenie. |
COleClientItem::ActivateAs | Aktywuje element jako inny typ. |
COleClientItem::AttachDataObject | Uzyskuje dostęp do danych w obiekcie OLE. |
COleClientItem::CanCreateFromData | Wskazuje, czy aplikacja kontenera może utworzyć obiekt osadzony. |
COleClientItem::CanCreateLinkFromData | Wskazuje, czy aplikacja kontenera może utworzyć połączony obiekt. |
COleClientItem::CanPaste | Wskazuje, czy Schowek zawiera osadzony lub statyczny element OLE. |
COleClientItem::CanPasteLink | Wskazuje, czy Schowek zawiera linkowalny element OLE. |
COleClientItem::Close | Zamyka link do serwera, ale nie niszczy elementu OLE. |
COleClientItem::ConvertTo | Konwertuje element na inny typ. |
COleClientItem::CopyToClipboard | Kopiuje element OLE do Schowka. |
COleClientItem::CreateCloneFrom | Tworzy duplikat istniejącego elementu. |
COleClientItem::CreateFromClipboard | Tworzy osadzony element ze Schowka. |
COleClientItem::CreateFromData | Tworzy element osadzony na podstawie obiektu danych. |
COleClientItem::CreateFromFile | Tworzy element osadzony na podstawie pliku. |
COleClientItem::CreateLinkFromClipboard | Tworzy połączony element ze Schowka. |
COleClientItem::CreateLinkFromData | Tworzy połączony element na podstawie obiektu danych. |
COleClientItem::CreateLinkFromFile | Tworzy połączony element na podstawie pliku. |
COleClientItem::CreateNewItem | Tworzy nowy osadzony element, uruchamiając aplikację serwera. |
COleClientItem::CreateStaticFromClipboard | Tworzy element statyczny ze Schowka. |
COleClientItem::CreateStaticFromData | Tworzy element statyczny na podstawie obiektu danych. |
COleClientItem::D eactivate | Dezaktywuje element. |
COleClientItem::D eactivateUI | Przywraca interfejs użytkownika aplikacji kontenera do oryginalnego stanu. |
COleClientItem::D elete | Usuwa lub zamyka element OLE, jeśli był to element połączony. |
COleClientItem::D oDragDrop | Wykonuje operację przeciągania i upuszczania. |
COleClientItem::D oVerb | Wykonuje określone zlecenie. |
COleClientItem::D raw | Rysuje element OLE. |
COleClientItem::GetActiveView | Pobiera widok, w którym element jest aktywowany. |
COleClientItem::GetCachedExtent | Zwraca granice prostokąta elementu OLE. |
COleClientItem::GetClassID | Pobiera identyfikator klasy elementu bieżącego. |
COleClientItem::GetClipboardData | Pobiera dane, które zostaną umieszczone w Schowku, wywołując funkcję składową CopyToClipboard . |
COleClientItem::GetDocument | COleDocument Zwraca obiekt, który zawiera element obecny. |
COleClientItem::GetDrawAspect | Pobiera bieżący widok elementu do renderowania. |
COleClientItem::GetExtent | Zwraca granice prostokąta elementu OLE. |
COleClientItem::GetIconFromRegistry | Pobiera uchwyt do ikony skojarzonej z serwerem określonego identyfikatora CLSID. |
COleClientItem::GetIconicMetafile | Pobiera metaplik używany do rysowania ikony elementu. |
COleClientItem::GetInPlaceWindow | Zwraca wskaźnik do okna edycji elementu w miejscu. |
COleClientItem::GetItemState | Pobiera bieżący stan elementu. |
COleClientItem::GetLastStatus | Zwraca stan ostatniej operacji OLE. |
COleClientItem::GetLinkUpdateOptions | Zwraca tryb aktualizacji połączonego elementu (funkcja zaawansowana). |
COleClientItem::GetType | Zwraca typ (osadzony, połączony lub statyczny) elementu OLE. |
COleClientItem::GetUserType | Pobiera ciąg opisujący typ elementu. |
COleClientItem::IsInPlaceActive | Zwraca wartość TRUE, jeśli element jest aktywny w miejscu. |
COleClientItem::IsLinkUpToDate | Zwraca wartość TRUE, jeśli połączony element jest aktualny wraz z dokumentem źródłowym. |
COleClientItem::IsModified | Zwraca wartość TRUE, jeśli element został zmodyfikowany od czasu ostatniego zapisania. |
COleClientItem::IsOpen | Zwraca wartość TRUE, jeśli element jest obecnie otwarty w aplikacji serwera. |
COleClientItem::IsRunning | Zwraca wartość TRUE, jeśli aplikacja serwera elementu jest uruchomiona. |
COleClientItem::OnActivate | Wywoływana przez strukturę w celu powiadomienia elementu o jego aktywowaniu. |
COleClientItem::OnActivateUI | Wywoływana przez strukturę w celu powiadomienia elementu o aktywowaniu i powinna wyświetlić jego interfejs użytkownika. |
COleClientItem::OnChange | Wywoływana, gdy serwer zmienia element OLE. Wymagana implementacja. |
COleClientItem::OnDeactivate | Wywoływana przez platformę, gdy element jest dezaktywowany. |
COleClientItem::OnDeactivateUI | Wywoływana przez platformę, gdy serwer usunął interfejs użytkownika w miejscu. |
COleClientItem::OnGetClipboardData | Wywoływana przez strukturę w celu uzyskania danych do skopiowania do Schowka. |
COleClientItem::OnInsertMenus | Wywoływana przez platformę w celu utworzenia menu złożonego. |
COleClientItem::OnRemoveMenus | Wywoływana przez platformę w celu usunięcia menu kontenera z menu złożonego. |
COleClientItem::OnSetMenu | Wywoływana przez platformę do instalowania i usuwania menu złożonego. |
COleClientItem::OnShowControlBars | Wywoływana przez strukturę w celu wyświetlania i ukrywania pasków sterowania. |
COleClientItem::OnUpdateFrameTitle | Wywoływana przez strukturę w celu zaktualizowania paska tytułu okna ramki. |
COleClientItem::ReactivateAndUndo | Reactivates elementu i cofa ostatnią operację edycji w miejscu. |
COleClientItem::Release | Zwalnia połączenie z połączonym elementem OLE i zamyka je, jeśli został otwarty. Nie niszczy elementu klienta. |
COleClientItem::Reload | Ponownie ładuje element po wywołaniu metody ActivateAs . |
COleClientItem::Run | Uruchamia aplikację skojarzona z elementem. |
COleClientItem::SetDrawAspect | Ustawia bieżący widok elementu na potrzeby renderowania. |
COleClientItem::SetExtent | Ustawia prostokąt ograniczenia elementu OLE. |
COleClientItem::SetHostNames | Ustawia nazwy wyświetlane przez serwer podczas edytowania elementu OLE. |
COleClientItem::SetIconicMetafile | Buforuje metaplik używany do rysowania ikony elementu. |
COleClientItem::SetItemRects | Ustawia prostokąt ograniczenia elementu. |
COleClientItem::SetLinkUpdateOptions | Ustawia tryb aktualizacji dla połączonego elementu (funkcja zaawansowana). |
COleClientItem::SetPrintDevice | Ustawia urządzenie print-target dla tego elementu klienta. |
COleClientItem::UpdateLink | Aktualizuje pamięć podręczną prezentacji elementu. |
Metody chronione
Nazwa/nazwisko | opis |
---|---|
COleClientItem::CanActivate | Wywoływana przez platformę w celu określenia, czy aktywacja w miejscu jest dozwolona. |
COleClientItem::OnChangeItemPosition | Wywoływana przez strukturę, gdy pozycja elementu ulegnie zmianie. |
COleClientItem::OnDeactivateAndUndo | Wywoływana przez strukturę, aby cofnąć po aktywacji. |
COleClientItem::OnDiscardUndoState | Wywoływana przez platformę w celu odrzucenia informacji o stanie cofania elementu. |
COleClientItem::OnGetClipRect | Wywoływana przez strukturę w celu uzyskania współrzędnych przycinania i prostokąta elementu. |
COleClientItem::OnGetItemPosition | Wywoływana przez strukturę w celu uzyskania pozycji elementu względem widoku. |
COleClientItem::OnGetWindowContext | Wywoływana przez strukturę po aktywowaniu elementu. |
COleClientItem::OnScrollBy | Wywoływana przez strukturę, aby przewinąć element do widoku. |
COleClientItem::OnShowItem | Wywoływana przez strukturę w celu wyświetlenia elementu OLE. |
Uwagi
Element OLE reprezentuje dane, utworzone i obsługiwane przez aplikację serwera, która może być "bezproblemowo" włączona do dokumentu, dzięki czemu wydaje się, że użytkownik będzie pojedynczym dokumentem. Wynikiem jest "dokument złożony" składający się z elementu OLE i dokumentu zawierającego.
Element OLE może być osadzony lub połączony. Jeśli jest osadzony, jego dane są przechowywane w ramach dokumentu złożonego. Jeśli jest połączony, jego dane są przechowywane w ramach oddzielnego pliku utworzonego przez aplikację serwera i tylko link do tego pliku jest przechowywany w dokumencie złożonym. Wszystkie elementy OLE zawierają informacje określające aplikację serwera, którą należy wywołać, aby je edytować.
COleClientItem
definiuje kilka funkcji, które można zastąpić, które są wywoływane w odpowiedzi na żądania z aplikacji serwera; te przesłonięcia zwykle działają jako powiadomienia. Dzięki temu aplikacja serwera może poinformować kontener o zmianach wprowadzanych przez użytkownika podczas edytowania elementu OLE lub pobierać informacje potrzebne podczas edycji.
COleClientItem
Może być używany z klasą COleDocument, COleLinkingDoc lub COleServerDoc . Aby użyć COleClientItem
klasy , utwórz z niej klasę i zaimplementuj funkcję składową OnChange , która definiuje sposób reagowania kontenera na zmiany wprowadzone w elemencie. Aby obsługiwać aktywację w miejscu, zastąpuj funkcję składową OnGetItemPosition . Ta funkcja zawiera informacje o wyświetlanej pozycji elementu OLE.
Aby uzyskać więcej informacji na temat korzystania z interfejsu kontenera, zobacz artykuły Kontenery: Implementowanie kontenera i aktywacji.
Uwaga
Zestaw Windows SDK odnosi się do elementów osadzonych i połączonych jako "obiektów" i odnosi się do typów elementów jako "klas". Ta dokumentacja używa terminu "item" do odróżnienia jednostki OLE od odpowiedniego obiektu C++ i terminu "type" w celu odróżnienia kategorii OLE od klasy C++.
Hierarchia dziedziczenia
COleClientItem
Wymagania
Nagłówek: afxole.h
COleClientItem::Activate
Wywołaj tę funkcję, aby wykonać określone zlecenie zamiast doVerb , aby można było wykonać własne przetwarzanie po wystąpieniu wyjątku.
void Activate(
LONG nVerb,
CView* pView,
LPMSG lpMsg = NULL);
Parametry
nVerb
Określa czasownik do wykonania. Może to być jedna z następujących opcji:
Wartość | Znaczenie | Symbol |
---|---|---|
0– | Primary — Zlecenie | OLEIVERB_PRIMARY |
-1 | Czasownik pomocniczy | (Brak) |
-1 | Wyświetlanie elementu do edycji | OLEIVERB_SHOW |
-2 | Edytowanie elementu w osobnym oknie | OLEIVERB_OPEN |
–3 | Ukryj element | OLEIVERB_HIDE |
Wartość -1 jest zazwyczaj aliasem dla innego zlecenia. Jeśli otwarta edycja nie jest obsługiwana, -2 ma taki sam efekt jak -1. Aby uzyskać dodatkowe wartości, zobacz IOleObject::D oVerb w zestawie Windows SDK.
Widok pView
Wskaźnik do okna widoku kontenera, który zawiera element OLE; jest on używany przez aplikację serwera do aktywacji w miejscu. Ten parametr powinien mieć wartość NULL, jeśli kontener nie obsługuje aktywacji w miejscu.
lpMsg
Wskaźnik do komunikatu, który spowodował aktywowanie elementu.
Uwagi
Jeśli aplikacja serwera została napisana przy użyciu biblioteki klas programu Microsoft Foundation, ta funkcja powoduje wykonanie funkcji składowej OnDoVerb odpowiedniego COleServerItem
obiektu.
Jeśli czasownik podstawowy to Edit i zero jest określony w parametrze nVerb , aplikacja serwera jest uruchamiana w celu umożliwienia edycji elementu OLE. Jeśli aplikacja kontenera obsługuje aktywację w miejscu, edycję można przeprowadzić. Jeśli kontener nie obsługuje aktywacji w miejscu (lub jeśli określono czasownik Open), serwer zostanie uruchomiony w osobnym oknie i można tam przeprowadzić edycję. Zazwyczaj gdy użytkownik aplikacji kontenera dwukrotnie kliknie element OLE, wartość podstawowego zlecenia w parametrze nVerb określa, która akcja może wykonać użytkownik. Jeśli jednak serwer obsługuje tylko jedną akcję, podejmuje tę akcję, niezależnie od tego, która wartość jest określona w parametrze nVerb .
Aby uzyskać więcej informacji, zobacz IOleObject::D oVerb w zestawie Windows SDK.
COleClientItem::ActivateAs
Używa obiektów konwersji OLE do aktywowania elementu tak, jakby był to element typu określonego przez clsidNew.
virtual BOOL ActivateAs(
LPCTSTR lpszUserType,
REFCLSID clsidOld,
REFCLSID clsidNew);
Parametry
lpszUserType
Wskaźnik do ciągu reprezentującego docelowy typ użytkownika, taki jak "Dokument programu Word".
clsidOld
Odwołanie do bieżącego identyfikatora klasy elementu. Identyfikator klasy powinien reprezentować typ rzeczywistego obiektu, który jest przechowywany, chyba że jest to link. W takim przypadku powinien to być identyfikator CLSID elementu, do którego odwołuje się link. COleConvertDialog automatycznie udostępnia prawidłowy identyfikator klasy dla elementu.
clsidNowy
Odwołanie do identyfikatora klasy docelowej.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Jest to wywoływane automatycznie przez COleConvertDialog::D oConvert. Zwykle nie jest wywoływana bezpośrednio.
COleClientItem::AttachDataObject
Wywołaj tę funkcję, aby zainicjować obiekt COleDataObject w celu uzyskania dostępu do danych w elemencie OLE.
void AttachDataObject(COleDataObject& rDataObject) const;
Parametry
rDataObject
Odwołanie do COleDataObject
obiektu, który zostanie zainicjowany, aby umożliwić dostęp do danych w elemencie OLE.
COleClientItem::CanActivate
Wywoływana przez platformę, gdy użytkownik żąda aktywacji w miejscu elementu OLE; Wartość zwracana tej funkcji określa, czy aktywacja w miejscu jest dozwolona.
virtual BOOL CanActivate();
Wartość zwracana
Niezerowe, jeśli aktywacja w miejscu jest dozwolona; w przeciwnym razie 0.
Uwagi
Domyślna implementacja umożliwia aktywację w miejscu, jeśli kontener ma prawidłowe okno. Zastąpi tę funkcję, aby zaimplementować specjalną logikę akceptowania lub odrzucania żądania aktywacji. Na przykład żądanie aktywacji może zostać odrzucone, jeśli element OLE jest zbyt mały lub nie jest obecnie widoczny.
Aby uzyskać więcej informacji, zobacz IOleInPlaceSite::CanInPlaceActivate w zestawie Windows SDK.
COleClientItem::CanCreateFromData
Sprawdza, czy aplikacja kontenera może utworzyć obiekt osadzony na podstawie danego COleDataObject
obiektu.
static BOOL PASCAL CanCreateFromData(const COleDataObject* pDataObject);
Parametry
pDataObject
Wskaźnik do obiektu COleDataObject , z którego ma zostać utworzony element OLE.
Wartość zwracana
Niezerowe, jeśli kontener może utworzyć obiekt osadzony na podstawie COleDataObject
obiektu; w przeciwnym razie 0.
Uwagi
Klasa COleDataObject
jest używana w transferach danych do pobierania danych w różnych formatach ze Schowka, przeciągania i upuszczania lub z osadzonego elementu OLE.
Kontenery mogą używać tej funkcji, aby zdecydować się włączyć lub wyłączyć polecenia Edytuj wklej i Edytuj wklej specjalne.
Aby uzyskać więcej informacji, zobacz artykuł Obiekty danych i źródła danych (OLE).
COleClientItem::CanCreateLinkFromData
Sprawdza, czy aplikacja kontenera może utworzyć połączony obiekt na podstawie danego COleDataObject
obiektu.
static BOOL PASCAL CanCreateLinkFromData(const COleDataObject* pDataObject);
Parametry
pDataObject
Wskaźnik do obiektu COleDataObject , z którego ma zostać utworzony element OLE.
Wartość zwracana
Nonzero, jeśli kontener może utworzyć połączony obiekt na podstawie COleDataObject
obiektu.
Uwagi
Klasa COleDataObject
jest używana w transferach danych do pobierania danych w różnych formatach ze Schowka, przeciągania i upuszczania lub z osadzonego elementu OLE.
Kontenery mogą używać tej funkcji, aby zdecydować się na włączenie lub wyłączenie poleceń Edytuj wklejanie specjalne i Edytuj łącze wklejania.
Aby uzyskać więcej informacji, zobacz artykuł Obiekty danych i źródła danych (OLE).
COleClientItem::CanPaste
Wywołaj tę funkcję, aby sprawdzić, czy osadzony element OLE można wkleić ze Schowka.
static BOOL PASCAL CanPaste();
Wartość zwracana
Niezerowe, jeśli osadzony element OLE można wkleić ze Schowka; w przeciwnym razie 0.
Uwagi
Aby uzyskać więcej informacji, zobacz OleGetClipboard i OleQueryCreateFromData w zestawie WINDOWS SDK.
COleClientItem::CanPasteLink
Wywołaj tę funkcję, aby sprawdzić, czy połączony element OLE można wkleić ze Schowka.
static BOOL PASCAL CanPasteLink();
Wartość zwracana
Niezerowe, jeśli połączony element OLE można wkleić ze Schowka; w przeciwnym razie 0.
Uwagi
Aby uzyskać więcej informacji, zobacz OleGetClipboard i OleQueryLinkFromData w zestawie WINDOWS SDK.
COleClientItem::Close
Wywołaj tę funkcję, aby zmienić stan elementu OLE ze stanu uruchomienia na stan załadowany, czyli załadowany wraz z jego procedurą obsługi w pamięci, ale z serwerem, który nie jest uruchomiony.
void Close(OLECLOSE dwCloseOption = OLECLOSE_SAVEIFDIRTY);
Parametry
dwCloseOption
Flaga określająca, w jakich okolicznościach element OLE jest zapisywany po powrocie do stanu załadowanego. Może mieć jedną z następujących wartości:
OLECLOSE_SAVEIFDIRTY Zapisz element OLE.
OLECLOSE_NOSAVE Nie zapisuj elementu OLE.
OLECLOSE_PROMPTSAVE Monituj użytkownika o to, czy zapisać element OLE.
Uwagi
Ta funkcja nie ma wpływu, gdy element OLE nie jest uruchomiony.
Aby uzyskać więcej informacji, zobacz IOleObject::Close w zestawie Windows SDK.
COleClientItem::COleClientItem
COleClientItem
Tworzy obiekt i dodaje go do kolekcji dokumentów kontenera elementów dokumentów, które konstruuje tylko obiekt C++ i nie wykonuje inicjalizacji OLE.
COleClientItem(COleDocument* pContainerDoc = NULL);
Parametry
pContainerDoc
Wskaźnik do dokumentu kontenera, który będzie zawierać ten element. Może to być dowolna pochodna COleDocument .
Uwagi
Jeśli przekażesz wskaźnik NULL, do dokumentu kontenera nie zostanie dodany żaden dodatek. Należy jawnie wywołać COleDocument ::AddItem.
Przed użyciem elementu OLE należy wywołać jedną z następujących funkcji składowych tworzenia:
COleClientItem::ConvertTo
Wywołaj tę funkcję składową, aby przekonwertować element na typ określony przez clsidNew.
virtual BOOL ConvertTo(REFCLSID clsidNew);
Parametry
clsidNowy
Identyfikator klasy typu docelowego.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Jest to wywoływane automatycznie przez COleConvertDialog. Nie jest konieczne bezpośrednie wywołanie go.
COleClientItem::CopyToClipboard
Wywołaj tę funkcję, aby skopiować element OLE do Schowka.
void CopyToClipboard(BOOL bIncludeLink = FALSE);
Parametry
bIncludeLink
Wartość TRUE, jeśli informacje o linku powinny zostać skopiowane do Schowka, co umożliwia wklejenie połączonego elementu; w przeciwnym razie FAŁSZ.
Uwagi
Zazwyczaj ta funkcja jest wywoływana podczas pisania programów obsługi komunikatów dla poleceń Kopiowania lub wycinania z menu Edycja. Należy zaimplementować wybór elementu w aplikacji kontenera, jeśli chcesz zaimplementować polecenia Kopiowania lub wycinania.
Aby uzyskać więcej informacji, zobacz OleSetClipboard w zestawie Windows SDK.
COleClientItem::CreateCloneFrom
Wywołaj tę funkcję, aby utworzyć kopię określonego elementu OLE.
BOOL CreateCloneFrom(const COleClientItem* pSrcItem);
Parametry
pSrcItem
Wskaźnik do elementu OLE, który ma zostać zduplikowany.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Kopia jest identyczna z elementem źródłowym. Za pomocą tej funkcji można obsługiwać operacje cofania.
COleClientItem::CreateFromClipboard
Wywołaj tę funkcję, aby utworzyć osadzony element na podstawie zawartości Schowka.
BOOL CreateFromClipboard(
OLERENDER render = OLERENDER_DRAW,
CLIPFORMAT cfFormat = 0,
LPFORMATETC lpFormatEtc = NULL);
Parametry
renderować
Flaga określająca sposób renderowania elementu OLE przez serwer. Aby uzyskać informacje o możliwych wartościach, zobacz OLERENDER w zestawie Windows SDK.
cfFormat
Określa format danych Schowka do buforowania podczas tworzenia elementu OLE.
lpFormatEtc
Wskaźnik do struktury FORMATETC używany, jeśli renderowanie jest OLERENDER_FORMAT lub OLERENDER_DRAW. Podaj wartość tego parametru tylko wtedy, gdy chcesz określić dodatkowe informacje o formacie poza formatem Schowka określonym przez cfFormat. W przypadku pominięcia tego parametru wartości domyślne są używane dla innych pól w FORMATETC
strukturze.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Zazwyczaj ta funkcja jest wywoływana z programu obsługi komunikatów dla polecenia Wklej w menu Edycja. (Polecenie Wklej jest włączone przez strukturę, jeśli Funkcja składowa CanPaste zwraca wartość niezerową.
Aby uzyskać więcej informacji, zobacz OLERENDER i FORMATETC w zestawie Windows SDK.
COleClientItem::CreateFromData
Wywołaj tę funkcję, aby utworzyć element osadzony na podstawie COleDataObject
obiektu.
BOOL CreateFromData(
COleDataObject* pDataObject,
OLERENDER render = OLERENDER_DRAW,
CLIPFORMAT cfFormat = 0,
LPFORMATETC lpFormatEtc = NULL);
Parametry
pDataObject
Wskaźnik do obiektu COleDataObject , z którego ma zostać utworzony element OLE.
renderować
Flaga określająca sposób renderowania elementu OLE przez serwer. Aby uzyskać informacje o możliwych wartościach, zobacz OLERENDER w zestawie Windows SDK.
cfFormat
Określa format danych Schowka do buforowania podczas tworzenia elementu OLE.
lpFormatEtc
Wskaźnik do struktury FORMATETC używany, jeśli renderowanie jest OLERENDER_FORMAT lub OLERENDER_DRAW. Podaj wartość tego parametru tylko wtedy, gdy chcesz określić dodatkowe informacje o formacie poza formatem Schowka określonym przez cfFormat. W przypadku pominięcia tego parametru wartości domyślne są używane dla innych pól w FORMATETC
strukturze.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Operacje transferu danych, takie jak wklejanie ze Schowka lub operacje przeciągania i upuszczania, zapewniają COleDataObject
obiekty zawierające informacje oferowane przez aplikację serwera. Jest on zwykle używany w przesłonięci CView ::OnDrop.
Aby uzyskać więcej informacji, zobacz OleCreateFromData, OLERENDER i FORMATETC w zestawie WINDOWS SDK.
COleClientItem::CreateFromFile
Wywołaj tę funkcję, aby utworzyć osadzony element OLE z pliku.
BOOL CreateFromFile(
LPCTSTR lpszFileName,
REFCLSID clsid = CLSID_NULL,
OLERENDER render = OLERENDER_DRAW,
CLIPFORMAT cfFormat = 0,
LPFORMATETC lpFormatEtc = NULL);
Parametry
lpszFileName
Wskaźnik do nazwy pliku, z którego ma zostać utworzony element OLE.
clsid
Zarezerwowane do użytku w przyszłości.
renderować
Flaga określająca sposób renderowania elementu OLE przez serwer. Aby uzyskać informacje o możliwych wartościach, zobacz OLERENDER w zestawie Windows SDK.
cfFormat
Określa format danych Schowka do buforowania podczas tworzenia elementu OLE.
lpFormatEtc
Wskaźnik do struktury FORMATETC używany, jeśli renderowanie jest OLERENDER_FORMAT lub OLERENDER_DRAW. Podaj wartość tego parametru tylko wtedy, gdy chcesz określić dodatkowe informacje o formacie poza formatem Schowka określonym przez cfFormat. W przypadku pominięcia tego parametru wartości domyślne są używane dla innych pól w FORMATETC
strukturze.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Struktura wywołuje tę funkcję z COleInsertDialog::CreateItem , jeśli użytkownik wybierze przycisk OK w oknie dialogowym Wstawianie obiektu po wybraniu przycisku Utwórz z pliku.
Aby uzyskać więcej informacji, zobacz OleCreateFromFile, OLERENDER i FORMATETC w zestawie WINDOWS SDK.
COleClientItem::CreateLinkFromClipboard
Wywołaj tę funkcję, aby utworzyć połączony element na podstawie zawartości Schowka.
BOOL CreateLinkFromClipboard(
OLERENDER render = OLERENDER_DRAW,
CLIPFORMAT cfFormat = 0,
LPFORMATETC lpFormatEtc = NULL);
Parametry
renderować
Flaga określająca sposób renderowania elementu OLE przez serwer. Aby uzyskać informacje o możliwych wartościach, zobacz OLERENDER w zestawie Windows SDK.
cfFormat
Określa format danych Schowka do buforowania podczas tworzenia elementu OLE.
lpFormatEtc
Wskaźnik do struktury FORMATETC używany, jeśli renderowanie jest OLERENDER_FORMAT lub OLERENDER_DRAW. Podaj wartość tego parametru tylko wtedy, gdy chcesz określić dodatkowe informacje o formacie poza formatem Schowka określonym przez cfFormat. W przypadku pominięcia tego parametru wartości domyślne są używane dla innych pól w FORMATETC
strukturze.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Zazwyczaj ta funkcja jest wywoływana z programu obsługi komunikatów dla polecenia Wklej łącze w menu Edycja. (Polecenie Wklej łącze jest włączone w domyślnej implementacji polecenia COleDocument , jeśli Schowek zawiera element OLE, z którym można się połączyć).
Aby uzyskać więcej informacji, zobacz OLERENDER i FORMATETC w zestawie Windows SDK.
COleClientItem::CreateLinkFromData
Wywołaj tę funkcję, aby utworzyć połączony element na podstawie COleDataObject
obiektu.
BOOL CreateLinkFromData(
COleDataObject* pDataObject,
OLERENDER render = OLERENDER_DRAW,
CLIPFORMAT cfFormat = 0,
LPFORMATETC lpFormatEtc = NULL);
Parametry
pDataObject
Wskaźnik do obiektu COleDataObject , z którego ma zostać utworzony element OLE.
renderować
Flaga określająca sposób renderowania elementu OLE przez serwer. Aby uzyskać informacje o możliwych wartościach, zobacz OLERENDER w zestawie Windows SDK.
cfFormat
Określa format danych Schowka do buforowania podczas tworzenia elementu OLE.
lpFormatEtc
Wskaźnik do struktury FORMATETC używany, jeśli renderowanie jest OLERENDER_FORMAT lub OLERENDER_DRAW. Podaj wartość tego parametru tylko wtedy, gdy chcesz określić dodatkowe informacje o formacie poza formatem Schowka określonym przez cfFormat. W przypadku pominięcia tego parametru wartości domyślne są używane dla innych pól w FORMATETC
strukturze.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Wywołaj to podczas operacji upuszczania, gdy użytkownik wskaże, że należy utworzyć łącze. Można go również użyć do obsługi polecenia Edytuj wklej. Jest ona wywoływana przez strukturę w COleClientItem::CreateLinkFromClipboard
elem. i w COlePasteSpecialDialog::CreateItem po wybraniu opcji Połącz.
Aby uzyskać więcej informacji, zobacz OleCreateLinkFromData, OLERENDER i FORMATETC w zestawie WINDOWS SDK.
COleClientItem::CreateLinkFromFile
Wywołaj tę funkcję, aby utworzyć połączony element OLE z pliku.
BOOL CreateLinkFromFile(
LPCTSTR lpszFileName,
OLERENDER render = OLERENDER_DRAW,
CLIPFORMAT cfFormat = 0,
LPFORMATETC lpFormatEtc = NULL);
Parametry
lpszFileName
Wskaźnik do nazwy pliku, z którego ma zostać utworzony element OLE.
renderować
Flaga określająca sposób renderowania elementu OLE przez serwer. Aby uzyskać informacje o możliwych wartościach, zobacz OLERENDER w zestawie Windows SDK.
cfFormat
Określa format danych Schowka do buforowania podczas tworzenia elementu OLE.
lpFormatEtc
Wskaźnik do struktury FORMATETC używany, jeśli renderowanie jest OLERENDER_FORMAT lub OLERENDER_DRAW. Podaj wartość tego parametru tylko wtedy, gdy chcesz określić dodatkowe informacje o formacie poza formatem Schowka określonym przez cfFormat. W przypadku pominięcia tego parametru wartości domyślne są używane dla innych pól w FORMATETC
strukturze.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Platforma wywołuje tę funkcję, jeśli użytkownik wybierze przycisk OK w oknie dialogowym Wstaw obiekt po wybraniu przycisku Utwórz z pliku i pole wyboru Łącze jest zaznaczone. Jest wywoływana z COleInsertDialog::CreateItem.
Aby uzyskać więcej informacji, zobacz OleCreateLinkToFile, OLERENDER i FORMATETC w zestawie WINDOWS SDK.
COleClientItem::CreateNewItem
Wywołaj tę funkcję, aby utworzyć element osadzony; Ta funkcja uruchamia aplikację serwera, która umożliwia użytkownikowi utworzenie elementu OLE.
BOOL CreateNewItem(
REFCLSID clsid,
OLERENDER render = OLERENDER_DRAW,
CLIPFORMAT cfFormat = 0,
LPFORMATETC lpFormatEtc = NULL);
Parametry
clsid
Identyfikator, który jednoznacznie identyfikuje typ elementu OLE do utworzenia.
renderować
Flaga określająca sposób renderowania elementu OLE przez serwer. Aby uzyskać informacje o możliwych wartościach, zobacz OLERENDER w zestawie Windows SDK.
cfFormat
Określa format danych Schowka do buforowania podczas tworzenia elementu OLE.
lpFormatEtc
Wskaźnik do struktury FORMATETC używany, jeśli renderowanie jest OLERENDER_FORMAT lub OLERENDER_DRAW. Podaj wartość tego parametru tylko wtedy, gdy chcesz określić dodatkowe informacje o formacie poza formatem Schowka określonym przez cfFormat. W przypadku pominięcia tego parametru wartości domyślne są używane dla innych pól w FORMATETC
strukturze.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Platforma wywołuje tę funkcję, jeśli użytkownik wybierze przycisk OK w oknie dialogowym Wstawianie obiektu po wybraniu przycisku Utwórz nowy.
Aby uzyskać więcej informacji, zobacz OleCreate, OLERENDER i FORMATETC w zestawie WINDOWS SDK.
COleClientItem::CreateStaticFromClipboard
Wywołaj tę funkcję, aby utworzyć element statyczny na podstawie zawartości Schowka.
BOOL CreateStaticFromClipboard(
OLERENDER render = OLERENDER_DRAW,
CLIPFORMAT cfFormat = 0,
LPFORMATETC lpFormatEtc = NULL);
Parametry
renderować
Flaga określająca sposób renderowania elementu OLE przez serwer. Aby uzyskać informacje o możliwych wartościach, zobacz OLERENDER w zestawie Windows SDK.
cfFormat
Określa format danych Schowka do buforowania podczas tworzenia elementu OLE.
lpFormatEtc
Wskaźnik do struktury FORMATETC używany, jeśli renderowanie jest OLERENDER_FORMAT lub OLERENDER_DRAW. Podaj wartość tego parametru tylko wtedy, gdy chcesz określić dodatkowe informacje o formacie poza formatem Schowka określonym przez cfFormat. W przypadku pominięcia tego parametru wartości domyślne są używane dla innych pól w FORMATETC
strukturze.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Element statyczny zawiera dane prezentacji, ale nie dane natywne; w związku z tym nie można go edytować. Zazwyczaj ta funkcja jest wywoływana, jeśli funkcja składowa CreateFromClipboard kończy się niepowodzeniem.
Aby uzyskać więcej informacji, zobacz OLERENDER i FORMATETC w zestawie Windows SDK.
COleClientItem::CreateStaticFromData
Wywołaj tę funkcję, aby utworzyć element statyczny COleDataObject
na podstawie obiektu.
BOOL CreateStaticFromData(
COleDataObject* pDataObject,
OLERENDER render = OLERENDER_DRAW,
CLIPFORMAT cfFormat = 0,
LPFORMATETC lpFormatEtc = NULL);
Parametry
pDataObject
Wskaźnik do obiektu COleDataObject , z którego ma zostać utworzony element OLE.
renderować
Flaga określająca sposób renderowania elementu OLE przez serwer. Aby uzyskać informacje o możliwych wartościach, zobacz OLERENDER w zestawie Windows SDK.
cfFormat
Określa format danych Schowka do buforowania podczas tworzenia elementu OLE.
lpFormatEtc
Wskaźnik do struktury FORMATETC używany, jeśli renderowanie jest OLERENDER_FORMAT lub OLERENDER_DRAW. Podaj wartość tego parametru tylko wtedy, gdy chcesz określić dodatkowe informacje o formacie poza formatem Schowka określonym przez cfFormat. W przypadku pominięcia tego parametru wartości domyślne są używane dla innych pól w FORMATETC
strukturze.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Element statyczny zawiera dane prezentacji, ale nie dane natywne; w związku z tym nie można go edytować. Jest to zasadniczo takie samo jak CreateStaticFromClipboard , z tą różnicą, że element statyczny COleDataObject
można utworzyć na podstawie dowolnego elementu, a nie tylko ze Schowka.
Używany w COlePasteSpecialDialog ::CreateItem po wybraniu opcji Static.
Aby uzyskać więcej informacji, zobacz OleCreateStaticFromData, OLERENDER i FORMATETC w zestawie WINDOWS SDK.
COleClientItem::D eactivate
Wywołaj tę funkcję, aby dezaktywować element OLE i zwolnić wszystkie skojarzone zasoby.
void Deactivate();
Uwagi
Zazwyczaj aktywny element OLE jest dezaktywowany w miejscu, gdy użytkownik klika mysz w obszarze klienta poza granicami elementu. Należy pamiętać, że dezaktywacja elementu OLE spowoduje odrzucenie stanu cofania, co uniemożliwia wywołanie funkcji składowej ReactivateAndUndo .
Jeśli aplikacja obsługuje cofanie, nie należy wywoływać Deactivate
metody ; zamiast tego wywołaj funkcję DezaktywujUI.
Aby uzyskać więcej informacji, zobacz IOleInPlaceObject::InPlaceDeactivate w zestawie Windows SDK.
COleClientItem::D eactivateUI
Wywołaj tę funkcję, gdy użytkownik dezaktywuje aktywowany element.
void DeactivateUI();
Uwagi
Ta funkcja przywraca interfejs użytkownika aplikacji kontenera do oryginalnego stanu, ukrywając wszystkie menu i inne kontrolki utworzone na potrzeby aktywacji w miejscu.
Ta funkcja nie opróżnia informacji o stanie cofania elementu. Te informacje są zachowywane tak, aby można było później ponownie uaktywnićAndUndo do wykonania polecenia cofania w aplikacji serwera, w przypadku gdy polecenie cofania kontenera jest wybierane natychmiast po dezaktywacji elementu.
Aby uzyskać więcej informacji, zobacz IOleInPlaceObject::InPlaceDeactivate w zestawie Windows SDK.
COleClientItem::D elete
Wywołaj tę funkcję, aby usunąć element OLE z dokumentu kontenera.
void Delete(BOOL bAutoDelete = TRUE);
Parametry
bAutoDelete
Określa, czy element ma zostać usunięty z dokumentu.
Uwagi
Ta funkcja wywołuje funkcję składową Release , która z kolei usuwa obiekt C++ dla elementu, trwale usuwając element OLE z dokumentu. Jeśli element OLE jest osadzony, dane natywne dla elementu zostaną usunięte. Zawsze zamyka uruchomiony serwer; w związku z tym, jeśli element jest otwartym linkiem, ta funkcja go zamyka.
COleClientItem::D oDragDrop
Wywołaj funkcję składową, DoDragDrop
aby wykonać operację przeciągania i upuszczania.
DROPEFFECT DoDragDrop(
LPCRECT lpItemRect,
CPoint ptOffset,
BOOL bIncludeLink = FALSE,
DWORD dwEffects = DROPEFFECT_COPY | DROPEFFECT_MOVE,
LPCRECT lpRectStartDrag = NULL);
Parametry
lpItemRect
Prostokąt elementu na ekranie we współrzędnych klienta (piksele).
ptOffset
Przesunięcie od lpItemRect , gdzie pozycja myszy znajdowała się w czasie przeciągania.
bIncludeLink
Ustaw wartość TRUE, jeśli dane łącza powinny zostać skopiowane do Schowka. Ustaw wartość FALSE, jeśli aplikacja serwera nie obsługuje linków.
dwEffects
Określa efekty, które źródło przeciągania pozwoli na operację przeciągania.
lpRectStartDrag
Wskaźnik do prostokąta, który definiuje, gdzie faktycznie rozpoczyna się przeciąganie. Aby uzyskać więcej informacji zobacz następujące sekcji uwag.
Wartość zwracana
Wartość DROPEFFECT. Jeśli DROPEFFECT_MOVE, oryginalne dane powinny zostać usunięte.
Uwagi
Operacja przeciągania i upuszczania nie rozpoczyna się natychmiast. Czeka, aż kursor myszy opuści prostokąt określony przez lpRectStartDrag lub do momentu, aż zostanie przekazana określona liczba milisekund. Jeśli parametr lpRectStartDrag ma wartość NULL, rozmiar prostokąta to jeden piksel.
Czas opóźnienia jest określany przez ustawienie klucza rejestru. Czas opóźnienia można zmienić, wywołując polecenie CWinApp::WriteProfileString lub CWinApp::WriteProfileInt. Jeśli nie określisz czasu opóźnienia, zostanie użyta wartość domyślna 200 milisekund. Czas opóźnienia przeciągania jest przechowywany w następujący sposób:
Czas opóźnienia przeciągania systemu Windows NT jest przechowywany w folderze HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\NT\CurrentVersion\IniFileMapping\win.ini\Windows\DragDelay.
Czas opóźnienia przeciągania systemu Windows 3.x jest przechowywany w win. Plik INI w sekcji [Windows}.
Czas opóźnienia przeciągania systemu Windows 95/98 jest przechowywany w buforowanej wersji win. INI.
Aby uzyskać więcej informacji na temat sposobu przechowywania informacji o opóźnieniu przeciągania w rejestrze lub obiekcie . Plik INI, zobacz WriteProfileString w zestawie Windows SDK.
COleClientItem::D oVerb
Wywołaj polecenie DoVerb
, aby wykonać określone zlecenie.
virtual BOOL DoVerb(
LONG nVerb,
CView* pView,
LPMSG lpMsg = NULL);
Parametry
nVerb
Określa czasownik do wykonania. Może zawierać jedną z następujących opcji:
Wartość | Znaczenie | Symbol |
---|---|---|
0– | Primary — Zlecenie | OLEIVERB_PRIMARY |
-1 | Czasownik pomocniczy | (Brak) |
-1 | Wyświetlanie elementu do edycji | OLEIVERB_SHOW |
-2 | Edytowanie elementu w osobnym oknie | OLEIVERB_OPEN |
–3 | Ukryj element | OLEIVERB_HIDE |
Wartość -1 jest zazwyczaj aliasem dla innego zlecenia. Jeśli otwarta edycja nie jest obsługiwana, -2 ma taki sam efekt jak -1. Aby uzyskać dodatkowe wartości, zobacz IOleObject::D oVerb w zestawie Windows SDK.
Widok pView
Wskaźnik do okna widoku; jest on używany przez serwer do aktywacji w miejscu. Ten parametr powinien mieć wartość NULL, jeśli aplikacja kontenera nie zezwala na aktywację w miejscu.
lpMsg
Wskaźnik do komunikatu, który spowodował aktywowanie elementu.
Wartość zwracana
Nonzero, jeśli czasownik został pomyślnie wykonany; w przeciwnym razie 0.
Uwagi
Ta funkcja wywołuje funkcję Aktywuj składową, aby wykonać zlecenie. Przechwytuje również wyjątki i wyświetla pole komunikatu do użytkownika, jeśli zostanie zgłoszony.
Jeśli czasownik podstawowy to Edit i zero jest określony w parametrze nVerb , aplikacja serwera jest uruchamiana w celu umożliwienia edycji elementu OLE. Jeśli aplikacja kontenera obsługuje aktywację w miejscu, edycję można przeprowadzić. Jeśli kontener nie obsługuje aktywacji w miejscu (lub jeśli określono czasownik Open), serwer zostanie uruchomiony w osobnym oknie i można tam przeprowadzić edycję. Zazwyczaj gdy użytkownik aplikacji kontenera dwukrotnie kliknie element OLE, wartość podstawowego zlecenia w parametrze nVerb określa, która akcja może wykonać użytkownik. Jeśli jednak serwer obsługuje tylko jedną akcję, podejmuje tę akcję, niezależnie od tego, która wartość jest określona w parametrze nVerb .
COleClientItem::D raw
Wywołaj tę funkcję, aby narysować element OLE do określonego prostokąta ograniczenia przy użyciu określonego kontekstu urządzenia.
BOOL Draw(
CDC* pDC,
LPCRECT lpBounds,
DVASPECT nDrawAspect = (DVASPECT)-1);
Parametry
PDC
Wskaźnik do obiektu CDC używanego do rysowania elementu OLE.
lpBounds
Wskaźnik do obiektu lub RECT
struktury CRect, który definiuje prostokąt ograniczenia, w którym ma być rysowany element OLE (w jednostkach logicznych określonych przez kontekst urządzenia).
nDrawAspect
Określa aspekt elementu OLE, czyli sposób jego wyświetlania. Jeśli nDrawAspect ma wartość -1, jest używany ostatni zestaw aspektów przy użyciu metody SetDrawAspect . Aby uzyskać więcej informacji na temat możliwych wartości dla tej flagi, zobacz SetDrawAspect.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Funkcja może używać reprezentacji metapliku elementu OLE utworzonego przez funkcję składową OnDraw elementu COleServerItem
.
Zazwyczaj jest używany Draw
do wyświetlania ekranu, przekazując kontekst urządzenia ekranu jako centrum dystrybucji kluczy publicznych. W takim przypadku należy określić tylko dwa pierwsze parametry.
Parametr lpBounds identyfikuje prostokąt w kontekście urządzenia docelowego (względem bieżącego trybu mapowania). Renderowanie może obejmować skalowanie obrazu i może być używane przez aplikacje kontenerów do narzucenia widoku, który skaluje się między wyświetlanym widokiem a końcowym wydrukowanym obrazem.
Aby uzyskać więcej informacji, zobacz IViewObject::D raw w zestawie Windows SDK.
COleClientItem::GetActiveView
Zwraca widok, w którym element jest aktywowany w miejscu.
CView* GetActiveView() const;
Wartość zwracana
Wskaźnik do widoku; w przeciwnym razie wartość NULL, jeśli element nie jest aktywowany w miejscu.
COleClientItem::GetCachedExtent
Wywołaj tę funkcję, aby pobrać rozmiar elementu OLE.
BOOL GetCachedExtent(
LPSIZE lpSize,
DVASPECT nDrawAspect = (DVASPECT)-1);
Parametry
lpSize
Wskaźnik do SIZE
struktury lub obiektu CSize , który będzie otrzymywać informacje o rozmiarze.
nDrawAspect
Określa aspekt elementu OLE, którego granice mają zostać pobrane. Aby uzyskać możliwe wartości, zobacz SetDrawAspect.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; 0, jeśli element OLE jest pusty.
Uwagi
Ta funkcja udostępnia te same informacje co GetExtent. Można jednak wywołać GetCachedExtent
metodę w celu uzyskania informacji o zakresie podczas przetwarzania innych programów obsługi OLE, takich jak OnChange. Wymiary znajdują się w jednostkach MM_HIMETRIC.
Jest to możliwe, ponieważ GetCachedExtent
używa interfejsu IViewObject2 , a nie interfejsu IOleObject , aby uzyskać zakres tego elementu. Obiekt IViewObject2
COM buforuje informacje o zakresie użytym w poprzednim wywołaniu obiektu IViewObject::D raw.
Aby uzyskać więcej informacji, zobacz IViewObject2::GetExtent w zestawie Windows SDK.
COleClientItem::GetClassID
Zwraca identyfikator klasy elementu do pamięci wskazywanej przez wartość pClassID.
void GetClassID(CLSID* pClassID) const;
Parametry
pClassID
Wskaźnik do identyfikatora typu CLSID w celu pobrania identyfikatora klasy. Aby uzyskać informacje na temat identyfikatora CLSID, zobacz zestaw Windows SDK.
Uwagi
Identyfikator klasy to 128-bitowa liczba, która jednoznacznie identyfikuje aplikację, która edytuje element.
Aby uzyskać więcej informacji, zobacz IPersist::GetClassID w zestawie Windows SDK.
COleClientItem::GetClipboardData
Wywołaj tę funkcję, aby uzyskać COleDataSource
obiekt zawierający wszystkie dane, które zostaną umieszczone w Schowku przez wywołanie funkcji składowej CopyToClipboard .
void GetClipboardData(
COleDataSource* pDataSource,
BOOL bIncludeLink = FALSE,
LPPOINT lpOffset = NULL,
LPSIZE lpSize = NULL);
Parametry
pDataSource
Wskaźnik do obiektu COleDataSource , który otrzyma dane zawarte w elemencie OLE.
bIncludeLink
WARTOŚĆ TRUE, jeśli dane linku powinny być dołączone; w przeciwnym razie FAŁSZ.
lpOffset
Przesunięcie kursora myszy ze źródła obiektu w pikselach.
lpSize
Rozmiar obiektu w pikselach.
Uwagi
GetClipboardData
jest wywoływana jako domyślna implementacja onGetClipboardData. Zastąpij OnGetClipboardData
tylko wtedy, gdy chcesz oferować formaty danych oprócz tych oferowanych przez CopyToClipboard
program . Umieść te formaty w COleDataSource
obiekcie przed wywołaniem metody lub po wywołaniu CopyToClipboard
metody , a następnie przekaż COleDataSource
obiekt do funkcji COleDataSource::SetClipboard . Jeśli na przykład chcesz, aby pozycja elementu OLE w dokumencie kontenera towarzyszyła mu w Schowku, należy zdefiniować własny format przekazywania tych informacji i umieszczać go w COleDataSource
przed wywołaniem metody CopyToClipboard
.
COleClientItem::GetDocument
Wywołaj tę funkcję, aby uzyskać wskaźnik do dokumentu zawierającego element OLE.
COleDocument* GetDocument() const;
Wartość zwracana
Wskaźnik do dokumentu zawierającego element OLE. Wartość NULL, jeśli element nie jest częścią dokumentu.
Uwagi
Ten wskaźnik umożliwia dostęp do COleDocument
obiektu przekazanego jako argument do konstruktora COleClientItem
.
COleClientItem::GetDrawAspect
Wywołaj funkcję składową GetDrawAspect
, aby określić bieżący "aspekt" lub widok elementu.
DVASPECT GetDrawAspect() const;
Wartość zwracana
Wartość z wyliczenia DVASPECT, którego wartości są wymienione w dokumentacji setDrawAspect.
Uwagi
Aspekt określa sposób renderowania elementu.
COleClientItem::GetExtent
Wywołaj tę funkcję, aby pobrać rozmiar elementu OLE.
BOOL GetExtent(
LPSIZE lpSize,
DVASPECT nDrawAspect = (DVASPECT)- 1);
Parametry
lpSize
Wskaźnik do SIZE
struktury lub CSize
obiektu, który będzie otrzymywać informacje o rozmiarze.
nDrawAspect
Określa aspekt elementu OLE, którego granice mają zostać pobrane. Aby uzyskać możliwe wartości, zobacz SetDrawAspect.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; 0, jeśli element OLE jest pusty.
Uwagi
Jeśli aplikacja serwera została napisana przy użyciu biblioteki klas programu Microsoft Foundation, ta funkcja powoduje wywołanie funkcji składowej OnGetExtent odpowiedniego COleServerItem
obiektu. Należy pamiętać, że pobrany rozmiar może różnić się od ostatniego rozmiaru ustawionego przez funkcję składową SetExtent . Rozmiar określony przez SetExtent
jest traktowany jako sugestia. Wymiary znajdują się w jednostkach MM_HIMETRIC.
Uwaga
Nie należy wywoływać GetExtent
podczas przetwarzania programu obsługi OLE, takiego jak OnChange. Wywołaj metodę GetCachedExtent .
Aby uzyskać więcej informacji, zobacz IOleObject::GetExtent w zestawie Windows SDK.
COleClientItem::GetIconFromRegistry
Wywołaj tę funkcję składową, aby pobrać uchwyt do zasobu ikony skojarzonego z serwerem określonego identyfikatora CLSID.
HICON GetIconFromRegistry() const;
static HICON GetIconFromRegistry(CLSID& clsid);
Parametry
clsid
Odwołanie do identyfikatora CLSID serwera skojarzonego z ikoną.
Wartość zwracana
Nie można odnaleźć prawidłowego uchwytu dla zasobu ikony ikony lub wartości NULL, jeśli ikona serwera lub ikona domyślna.
Uwagi
Ta funkcja składowa nie uruchomi serwera ani nie uzyska ikony dynamicznie, nawet jeśli serwer jest już uruchomiony. Zamiast tego ta funkcja składowa otwiera obraz wykonywalny serwera i pobiera ikonę statyczną skojarzona z serwerem, ponieważ została zarejestrowana.
COleClientItem::GetIconicMetafile
Pobiera metaplik używany do rysowania ikony elementu.
HGLOBAL GetIconicMetafile();
Wartość zwracana
Dojście do metapliku, jeśli się powiedzie; w przeciwnym razie wartość NULL.
Uwagi
Jeśli nie ma bieżącej ikony, zostanie zwrócona ikona domyślna. Jest to wywoływane automatycznie przez okna dialogowe MFC/OLE i zwykle nie jest wywoływane bezpośrednio.
Ta funkcja wywołuje również metodę SetIconicMetafile w celu buforowania metapliku do późniejszego użycia.
COleClientItem::GetInPlaceWindow
Wywołaj GetInPlaceWindow
funkcję składową, aby uzyskać wskaźnik do okna, w którym element został otwarty do edycji w miejscu.
CWnd* GetInPlaceWindow();
Wartość zwracana
Wskaźnik do okna edycji elementu w miejscu; WARTOŚĆ NULL, jeśli element nie jest aktywny lub jego serwer jest niedostępny.
Uwagi
Ta funkcja powinna być wywoływana tylko dla elementów, które są aktywne w miejscu.
COleClientItem::GetItemState
Wywołaj tę funkcję, aby uzyskać bieżący stan elementu OLE.
UINT GetItemState() const;
Wartość zwracana
Wyliczona COleClientItem::ItemState
wartość, która może być jedną z następujących wartości: emptyState
, , openState
loadedState
, activeState
, . activeUIState
Aby uzyskać informacje o tych stanach, zobacz artykuł Kontenery: Stany elementów klienta.
Uwagi
Aby otrzymywać powiadomienia o zmianie stanu elementu OLE, użyj funkcji składowej OnChange .
Aby uzyskać więcej informacji, zobacz artykuł Kontenery: Stany elementów klienta.
COleClientItem::GetLastStatus
Zwraca kod stanu ostatniej operacji OLE.
SCODE GetLastStatus() const;
Wartość zwracana
Wartość SCODE.
Uwagi
W przypadku funkcji członkowskich, które zwracają wartość LOGICZNĄ FALSE lub innych funkcji członkowskich, które zwracają wartość NULL, GetLastStatus
zwraca bardziej szczegółowe informacje o błędach. Należy pamiętać, że większość funkcji składowych OLE zgłasza wyjątki dla poważniejszych błędów. Konkretne informacje na temat interpretacji kodu SCODE zależą od bazowego wywołania OLE, które ostatnio zwróciło wartość SCODE.
Aby uzyskać więcej informacji na temat protokołu SCODE, zobacz Struktura kodów błędów com w dokumentacji zestawu Windows SDK.
COleClientItem::GetLinkUpdateOptions
Wywołaj tę funkcję, aby uzyskać bieżącą wartość opcji aktualizacji łącza dla elementu OLE.
OLEUPDATE GetLinkUpdateOptions();
Wartość zwracana
Jedna z następujących wartości:
OLEUPDATE_ALWAYS Zaktualizuj połączony element, gdy jest to możliwe. Ta opcja obsługuje przycisk radiowy Automatyczna aktualizacja łącza w oknie dialogowym Linki.
OLEUPDATE_ONCALL Zaktualizuj połączony element tylko na żądanie z aplikacji kontenera (gdy wywoływana jest funkcja składowa UpdateLink ). Ta opcja obsługuje przycisk radiowy Ręczne aktualizowanie linków w oknie dialogowym Linki.
Uwagi
Jest to zaawansowana operacja.
Ta funkcja jest wywoływana automatycznie przez klasę COleLinksDialog .
Aby uzyskać więcej informacji, zobacz IOleLink::GetUpdateOptions w zestawie Windows SDK.
COleClientItem::GetType
Wywołaj tę funkcję, aby określić, czy element OLE jest osadzony, czy połączony, czy statyczny.
OLE_OBJTYPE GetType() const;
Wartość zwracana
Liczba całkowita bez znaku z jedną z następujących wartości:
OT_LINK Element OLE jest łączem.
OT_EMBEDDED Element OLE jest osadzony.
OT_STATIC Element OLE jest statyczny, czyli zawiera tylko dane prezentacji, a nie dane natywne, a tym samym nie można go edytować.
COleClientItem::GetUserType
Wywołaj tę funkcję, aby uzyskać ciąg widoczny dla użytkownika opisujący typ elementu OLE, taki jak "Dokument programu Word".
void GetUserType(
USERCLASSTYPE nUserClassType,
CString& rString);
Parametry
nUserClassType
Wartość wskazująca żądany wariant ciągu opisującego typ elementu OLE. Może to mieć jedną z następujących wartości:
USERCLASSTYPE_FULL pełną nazwę typu wyświetlaną użytkownikowi.
USERCLASSTYPE_SHORT Krótka nazwa (maksymalnie 15 znaków) do użycia w menu podręcznych i okno dialogowe Edytowanie łączy.
USERCLASSTYPE_APPNAME Nazwa aplikacji obsługującej klasę.
rString
Odwołanie do obiektu CString , do którego ma zostać zwrócony ciąg opisujący typ elementu OLE.
Uwagi
Jest to często wpis w bazie danych rejestracji systemu.
Jeśli żądana jest pełna nazwa typu, ale nie jest dostępna, zamiast tego jest używana krótka nazwa. Jeśli w bazie danych rejestracji nie zostanie znaleziony żaden wpis typu elementu OLE lub nie ma żadnych typów użytkowników zarejestrowanych dla typu elementu OLE, używany jest typ użytkownika aktualnie przechowywany w elemencie OLE. Jeśli nazwa typu użytkownika jest pustym ciągiem, zostanie użyty ciąg "Nieznany obiekt".
Aby uzyskać więcej informacji, zobacz IOleObject::GetUserType w zestawie Windows SDK.
COleClientItem::IsInPlaceActive
Wywołaj tę funkcję, aby sprawdzić, czy element OLE jest aktywny.
BOOL IsInPlaceActive() const;
Wartość zwracana
Niezerowe, jeśli element OLE jest aktywny w miejscu; w przeciwnym razie 0.
Uwagi
Często wykonywane są różne logiki w zależności od tego, czy element jest edytowany. Funkcja sprawdza, czy bieżący stan elementu jest równy wartości lub activeState
activeUIState
.
COleClientItem::IsLinkUpToDate
Wywołaj tę funkcję, aby sprawdzić, czy element OLE jest aktualny.
BOOL IsLinkUpToDate() const;
Wartość zwracana
Nonzero, jeśli element OLE jest aktualny; w przeciwnym razie 0.
Uwagi
Element połączony może być nieaktualny, jeśli dokument źródłowy został zaktualizowany. Osadzony element zawierający linki w nim może podobnie stać się nieaktualny. Funkcja wykonuje rekursywne sprawdzanie elementu OLE. Należy pamiętać, że określenie, czy element OLE jest nieaktualny, może być tak kosztowny, jak w rzeczywistości podczas przeprowadzania aktualizacji.
Jest to wywoływane automatycznie przez implementację COleLinksDialog .
Aby uzyskać więcej informacji, zobacz IOleObject::IsUpToDate w zestawie Windows SDK.
COleClientItem::IsModified
Wywołaj tę funkcję, aby sprawdzić, czy element OLE jest zanieczyszczony (zmodyfikowany od czasu jego ostatniego zapisania).
BOOL IsModified() const;
Wartość zwracana
Nonzero, jeśli element OLE jest zanieczyszczony; w przeciwnym razie 0.
Uwagi
Aby uzyskać więcej informacji, zobacz IPersistStorage::IsDirty w zestawie Windows SDK.
COleClientItem::IsOpen
Wywołaj tę funkcję, aby sprawdzić, czy element OLE jest otwarty; oznacza to, że jest otwierany w wystąpieniu aplikacji serwera uruchomionej w osobnym oknie.
BOOL IsOpen() const;
Wartość zwracana
Nonzero, jeśli element OLE jest otwarty; w przeciwnym razie 0.
Uwagi
Służy do określania, kiedy należy narysować obiekt za pomocą wzorca kreskowania. Otwarty obiekt powinien mieć wzór kreskowania narysowany na górze obiektu. W tym celu można użyć obiektu CRectTracker .
COleClientItem::IsRunning
Wywołaj tę funkcję, aby sprawdzić, czy element OLE jest uruchomiony; oznacza to, czy element jest ładowany i uruchomiony w aplikacji serwera.
BOOL IsRunning() const;
Wartość zwracana
Nonzero, jeśli element OLE jest uruchomiony; w przeciwnym razie 0.
Uwagi
Aby uzyskać więcej informacji, zobacz OleIsRunning w zestawie Windows SDK.
COleClientItem::OnActivate
Wywoływana przez strukturę w celu powiadomienia elementu o tym, że właśnie została aktywowana.
virtual void OnActivate();
Uwagi
Należy pamiętać, że ta funkcja jest wywoływana, aby wskazać, że serwer jest uruchomiony, a nie wskazać, że jego interfejs użytkownika został zainstalowany w aplikacji kontenera. W tym momencie obiekt nie ma aktywnego interfejsu użytkownika (nie activeUIState
jest ). Nie zainstalowano menu ani paska narzędzi. Funkcja składowa OnActivateUI jest wywoływana w takim przypadku.
Domyślna implementacja wywołuje funkcję składową OnChange z OLE_CHANGEDSTATE jako parametrem. Zastąpij tę funkcję w celu wykonania niestandardowego przetwarzania, gdy element staje się aktywny w miejscu.
COleClientItem::OnActivateUI
Struktura wywołuje OnActivateUI
, gdy obiekt wprowadził aktywny stan interfejsu użytkownika.
virtual void OnActivateUI();
Uwagi
Obiekt zainstalował teraz pasek narzędzi i menu.
Domyślna implementacja zapamiętuje nazwę HWND serwera na potrzeby późniejszych GetServerWindow
wywołań.
COleClientItem::OnChange
Wywoływana przez platformę, gdy użytkownik modyfikuje, zapisuje lub zamyka element OLE.
virtual void OnChange(
OLE_NOTIFICATION nCode,
DWORD dwParam);
Parametry
nCode
Przyczyna zmiany tego elementu przez serwer. Może mieć jedną z następujących wartości:
OLE_CHANGED Wygląd elementu OLE uległ zmianie.
OLE_SAVED Element OLE został zapisany.
OLE_CLOSED Element OLE został zamknięty.
OLE_CHANGED_STATE Element OLE zmienił się z jednego stanu na inny.
dwParam
Jeśli parametr nCode jest OLE_SAVED lub OLE_CLOSED, ten parametr nie jest używany. Jeśli parametr nCode jest OLE_CHANGED, ten parametr określa aspekt elementu OLE, który uległ zmianie. Aby uzyskać możliwe wartości, zobacz parametr dwParam COleClientItem::D raw. Jeśli parametr nCode jest OLE_CHANGED_STATE, jest COleClientItem::ItemState
to wyliczona wartość i opisuje wprowadzony stan. Może mieć jedną z następujących wartości: emptyState
, , loadedState
openState
, activeState
lub activeUIState
.
Uwagi
(Jeśli aplikacja serwera jest napisana przy użyciu biblioteki klas programu Microsoft Foundation, ta funkcja jest wywoływana w odpowiedzi na Notify
funkcje składowe lub COleServerDoc
COleServerItem
. Domyślna implementacja oznacza dokument kontenera jako zmodyfikowany, jeśli nCode jest OLE_CHANGED lub OLE_SAVED.
W przypadku OLE_CHANGED_STATE bieżący stan zwrócony ze stanu GetItemState będzie nadal starym stanem, co oznacza, że stan, który był bieżący przed tą zmianą stanu.
Zastąpi tę funkcję, aby reagować na zmiany stanu elementu OLE. Zazwyczaj aktualizujesz wygląd elementu, unieważniając obszar, w którym jest wyświetlany element. Wywołaj implementację klasy bazowej na początku przesłonięcia.
COleClientItem::OnChangeItemPosition
Wywoływana przez platformę w celu powiadomienia kontenera o zmianie zakresu elementu OLE podczas aktywacji w miejscu.
virtual BOOL OnChangeItemPosition(const CRect& rectPos);
Parametry
rectPos
Wskazuje położenie elementu względem obszaru klienta aplikacji kontenera.
Wartość zwracana
Niezerowe, jeśli pozycja elementu została pomyślnie zmieniona; w przeciwnym razie 0.
Uwagi
Domyślna implementacja określa nowy widoczny prostokąt elementu OLE i wywołuje element SetItemRects nowymi wartościami. Domyślna implementacja oblicza widoczny prostokąt dla elementu i przekazuje te informacje do serwera.
Zastąpi tę funkcję, aby zastosować specjalne reguły do operacji zmiany rozmiaru/przenoszenia. Jeśli aplikacja jest napisana w MFC, to wywołanie powoduje, że serwer o nazwie COleServerDoc::RequestPositionChange.
COleClientItem::OnDeactivate
Wywoływana przez platformę, gdy element OLE przechodzi ze stanu aktywnego miejsca ( activeState
) do stanu załadowanego, co oznacza, że jest dezaktywowany po aktywacji w miejscu.
virtual void OnDeactivate();
Uwagi
Należy pamiętać, że ta funkcja jest wywoływana, aby wskazać, że element OLE jest zamknięty, a nie że jego interfejs użytkownika został usunięty z aplikacji kontenera. W takim przypadku wywoływana jest funkcja składowa OnDeactivateUI .
Domyślna implementacja wywołuje funkcję składową OnChange z OLE_CHANGEDSTATE jako parametrem. Zastąpij tę funkcję w celu wykonania niestandardowego przetwarzania, gdy aktywny element w miejscu jest dezaktywowany. Jeśli na przykład obsługujesz polecenie cofania w aplikacji kontenera, możesz zastąpić tę funkcję, aby odrzucić stan cofania, co oznacza, że nie można cofnąć ostatniej operacji wykonanej na elemencie OLE po dezaktywowaniu elementu.
COleClientItem::OnDeactivateAndUndo
Wywoływana przez platformę, gdy użytkownik wywołuje polecenie cofania po aktywowaniu elementu OLE.
virtual void OnDeactivateAndUndo();
Uwagi
Domyślna implementacja wywołuje funkcję DezaktywujUI , aby dezaktywować interfejs użytkownika serwera. Zastąpi tę funkcję, jeśli implementujesz polecenie cofania w aplikacji kontenera. W zastąpieniu wywołaj wersję klasy bazowej funkcji, a następnie cofnij ostatnie polecenie wykonane w aplikacji.
Aby uzyskać więcej informacji, zobacz IOleInPlaceSite::D eactivateAndUndo w zestawie Windows SDK.
COleClientItem::OnDeactivateUI
Wywoływana, gdy użytkownik dezaktywuje aktywowany element.
virtual void OnDeactivateUI(BOOL bUndoable);
Parametry
bUndoable
Określa, czy zmiany edycji są nie do cofnięcia.
Uwagi
Ta funkcja przywraca interfejs użytkownika aplikacji kontenera do oryginalnego stanu, ukrywając wszystkie menu i inne kontrolki utworzone na potrzeby aktywacji w miejscu.
Jeśli parametr bUndoable ma wartość FALSE, kontener powinien wyłączyć polecenie cofania, w efekcie odrzucając stan cofania kontenera, ponieważ wskazuje, że ostatnia operacja wykonywana przez serwer nie jest niemożliwa do cofnięcia.
COleClientItem::OnDiscardUndoState
Wywoływana przez platformę, gdy użytkownik wykonuje akcję, która odrzuca stan cofania podczas edytowania elementu OLE.
virtual void OnDiscardUndoState();
Uwagi
Domyślna implementacja nic nie robi. Zastąpi tę funkcję, jeśli implementujesz polecenie cofania w aplikacji kontenera. W zastąpieniu odrzuć stan cofania aplikacji kontenera.
Jeśli serwer został napisany przy użyciu biblioteki klas programu Microsoft Foundation, serwer może spowodować wywołanie tej funkcji przez wywołanie COleServerDoc ::D iscardUndoState.
Aby uzyskać więcej informacji, zobacz IOleInPlaceSite::D iscardUndoState w zestawie Windows SDK.
COleClientItem::OnGetClipboardData
Wywoływana przez platformę COleDataSource
w celu pobrania obiektu zawierającego wszystkie dane umieszczone w Schowku przez wywołanie funkcji CopyToClipboard lub do funkcji składowej DoDragDrop .
virtual COleDataSource* OnGetClipboardData(
BOOL bIncludeLink,
LPPOINT lpOffset,
LPSIZE lpSize);
Parametry
bIncludeLink
Ustaw wartość TRUE, jeśli dane łącza powinny zostać skopiowane do Schowka. Ustaw wartość FALSE, jeśli aplikacja serwera nie obsługuje łączy.
lpOffset
Wskaźnik do przesunięcia kursora myszy ze źródła obiektu w pikselach.
lpSize
Wskaźnik do rozmiaru obiektu w pikselach.
Wartość zwracana
Wskaźnik do obiektu COleDataSource zawierającego dane Schowka.
Uwagi
Domyślna implementacja tej funkcji wywołuje metodę GetClipboardData.
COleClientItem::OnGetClipRect
Struktura wywołuje OnGetClipRect
funkcję składową, aby uzyskać współrzędne wycinania prostokąta elementu, który jest edytowany.
virtual void OnGetClipRect(CRect& rClipRect);
Parametry
rClipRect
Wskaźnik do obiektu klasy CRect , który będzie przechowywać współrzędne wycinków prostokąta elementu.
Uwagi
Współrzędne znajdują się w pikselach względem obszaru klienta okna aplikacji kontenera.
Domyślna implementacja po prostu zwraca prostokąt klienta widoku, w którym element jest aktywny.
COleClientItem::OnGetItemPosition
Struktura wywołuje OnGetItemPosition
funkcję składową, aby uzyskać współrzędne elementu, który jest edytowany.
virtual void OnGetItemPosition(CRect& rPosition);
Parametry
Położenie rPosition
Odwołanie do obiektu CRect , który będzie zawierać współrzędne położenia elementu.
Uwagi
Współrzędne znajdują się w pikselach względem obszaru klienta okna aplikacji kontenera.
Domyślna implementacja tej funkcji nic nie robi. Aplikacje, które obsługują edycję w miejscu, wymagają implementacji.
COleClientItem::OnGetWindowContext
Wywoływana przez strukturę po aktywowaniu elementu.
virtual BOOL OnGetWindowContext(
CFrameWnd** ppMainFrame,
CFrameWnd** ppDocFrame,
LPOLEINPLACEFRAMEINFO lpFrameInfo);
Parametry
ppMainFrame
Wskaźnik do wskaźnika do głównego okna ramki.
ppDocFrame
Wskaźnik do wskaźnika do okna ramki dokumentu.
lpFrameInfo
Wskaźnik do struktury OLEINPLACEFRAMEINFO , która będzie otrzymywać informacje o oknie ramowym.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Ta funkcja służy do pobierania informacji o oknie nadrzędnym elementu OLE.
Jeśli kontener jest aplikacją MDI, domyślna implementacja zwraca wskaźnik do obiektu CMDIFrameWnd w ppMainFrame i wskaźnik do aktywnego obiektu CMDIChildWnd w ppDocFrame. Jeśli kontener jest aplikacją SDI, domyślna implementacja zwraca wskaźnik do obiektu CFrameWnd w ppMainFrame i zwraca wartość NULL w ppDocFrame. Domyślna implementacja wypełnia również elementy członkowskie lpFrameInfo.
Zastąpi tę funkcję tylko wtedy, gdy domyślna implementacja nie pasuje do aplikacji; na przykład jeśli aplikacja ma paradygmat interfejsu użytkownika, który różni się od standardu SDI lub MDI. Jest to zaawansowane przesłonięcia.
Aby uzyskać więcej informacji, zobacz IOleInPlaceSite::GetWindowContext i struktura OLEINPLACEFRAMEINFO w zestawie Windows SDK.
COleClientItem::OnInsertMenus
Wywoływana przez platformę podczas aktywacji w miejscu w celu wstawienia menu aplikacji kontenera do pustego menu.
virtual void OnInsertMenus(
CMenu* pMenuShared,
LPOLEMENUGROUPWIDTHS lpMenuWidths);
Parametry
pMenuShared
Wskazuje puste menu.
lpMenuWidths
Wskazuje tablicę sześciu wartości LONG wskazującą, ile menu znajduje się w każdej z następujących grup menu: Plik, Edycja, Kontener, Obiekt, Okno, Pomoc. Aplikacja kontenera jest odpowiedzialna za grupy menu Plik, Kontener i Okno, odpowiadające elementom 0, 2 i 4 tej tablicy.
Uwagi
To menu jest następnie przekazywane do serwera, który wstawia własne menu, tworząc menu złożone. Tę funkcję można wywołać wielokrotnie, aby utworzyć kilka menu złożonych.
Domyślna implementacja wstawia do pliku pMenuShared menu kontenera w miejscu, czyli grupy menu Plik, Kontener i Okno. CDocTemplate::SetContainerInfo służy do ustawiania tego zasobu menu. Domyślna implementacja przypisuje również odpowiednie wartości do elementów 0, 2 i 4 w lpMenuWidths, w zależności od zasobu menu. Zastąpi tę funkcję, jeśli domyślna implementacja nie jest odpowiednia dla aplikacji; na przykład jeśli aplikacja nie używa szablonów dokumentów do kojarzenia zasobów z typami dokumentów. Jeśli zastąpisz tę funkcję, należy również zastąpić polecenia OnSetMenu i OnRemoveMenus. Jest to zaawansowane przesłonięcia.
Aby uzyskać więcej informacji, zobacz IOleInPlaceFrame::InsertMenus w zestawie Windows SDK.
COleClientItem::OnRemoveMenus
Wywoływana przez platformę w celu usunięcia menu kontenera z określonego menu złożonego po zakończeniu aktywacji w miejscu.
virtual void OnRemoveMenus(CMenu* pMenuShared);
Parametry
pMenuShared
Wskazuje menu złożone skonstruowane przez wywołania funkcji składowej OnInsertMenus .
Uwagi
Domyślna implementacja usuwa z pliku pMenuShared menu kontenera w miejscu, czyli grupy menu Plik, Kontener i Okno. Zastąpi tę funkcję, jeśli domyślna implementacja nie jest odpowiednia dla aplikacji; na przykład jeśli aplikacja nie używa szablonów dokumentów do kojarzenia zasobów z typami dokumentów. Jeśli zastąpisz tę funkcję, prawdopodobnie należy zastąpić onInsertMenus i OnSetMenu , jak również. Jest to zaawansowane przesłonięcia.
Podmenus na pMenuShared może być współużytkowany przez więcej niż jedno menu złożone, jeśli serwer wielokrotnie wywoływany OnInsertMenus
. W związku z tym nie należy usuwać żadnych podmenu w przesłonięciu elementu OnRemoveMenus
; należy je odłączyć tylko.
Aby uzyskać więcej informacji, zobacz IOleInPlaceFrame::RemoveMenus w zestawie Windows SDK.
COleClientItem::OnScrollBy
Wywoływana przez strukturę w celu przewinięcia elementu OLE w odpowiedzi na żądania z serwera.
virtual BOOL OnScrollBy(CSize sizeExtent);
Parametry
sizeExtent
Określa odległości w pikselach, aby przewijać w kierunku x i y.
Wartość zwracana
Niezerowe, jeśli element został przewinięty; 0, jeśli nie można przewinąć elementu.
Uwagi
Jeśli na przykład element OLE jest częściowo widoczny, a użytkownik przechodzi poza widoczny region podczas edytowania w miejscu, ta funkcja jest wywoływana, aby zachować widoczny kursor. Domyślna implementacja nic nie robi. Zastąpij tę funkcję, aby przewinąć element o określoną kwotę. Należy pamiętać, że w wyniku przewijania widoczna część elementu OLE może ulec zmianie. Wywołaj metodę SetItemRects , aby zaktualizować widoczny prostokąt elementu.
Aby uzyskać więcej informacji, zobacz IOleInPlaceSite::Scroll in the Windows SDK (IOleInPlaceSite::Przewiń w zestawie Windows SDK).
COleClientItem::OnSetMenu
Wywoływana przez strukturę dwa razy, gdy aktywacja w miejscu rozpoczyna się i kończy; przy pierwszym zainstalowaniu menu złożonego i po raz drugi (z otworem równym NULL), aby go usunąć.
virtual void OnSetMenu(
CMenu* pMenuShared,
HOLEMENU holemenu,
HWND hwndActiveObject);
Parametry
pMenuShared
Wskaźnik do menu złożonego skonstruowanego przez wywołania funkcji składowej OnInsertMenus i InsertMenu
funkcji.
holemenu
Dojmij do deskryptora menu zwróconego OleCreateMenuDescriptor
przez funkcję lub wartość NULL, jeśli kod wysyłający ma zostać usunięty.
hwndActiveObject
Dojście do okna edycji elementu OLE. Jest to okno, które będzie otrzymywać polecenia edycji z ole.
Uwagi
Domyślna implementacja instaluje lub usuwa menu złożone, a następnie wywołuje funkcję OleSetMenuDescriptor w celu zainstalowania lub usunięcia kodu wysyłającego. Zastąpi tę funkcję, jeśli domyślna implementacja nie jest odpowiednia dla aplikacji. Jeśli zastąpisz tę funkcję, prawdopodobnie należy zastąpić również polecenia OnInsertMenus i OnRemoveMenus . Jest to zaawansowane przesłonięcia.
Aby uzyskać więcej informacji, zobacz OleCreateMenuDescriptor, OleSetMenuDescriptor i IOleInPlaceFrame::SetMenu w zestawie WINDOWS SDK.
COleClientItem::OnShowControlBars
Wywoływana przez platformę w celu pokazania i ukrycia pasków sterowania aplikacji kontenera.
virtual BOOL OnShowControlBars(
CFrameWnd* pFrameWnd,
BOOL bShow);
Parametry
pFrameWnd
Wskaźnik do okna ramki aplikacji kontenera. Może to być główne okno ramowe lub okno podrzędne MDI.
bShow
Określa, czy paski sterowania mają być wyświetlane, czy ukryte.
Wartość zwracana
Niezerowe, jeśli wywołanie funkcji powoduje zmianę stanu pasków sterowania; 0, jeśli wywołanie nie powoduje żadnej zmiany lub jeśli pFrameWnd nie wskazuje okna ramki kontenera.
Uwagi
Ta funkcja zwraca wartość 0, jeśli paski sterowania są już w stanie określonym przez polecenie bShow. Taka sytuacja może wystąpić, na przykład jeśli paski sterowania są ukryte, a bShow ma wartość FALSE.
Domyślna implementacja usuwa pasek narzędzi z okna ramki najwyższego poziomu.
COleClientItem::OnShowItem
Wywoływana przez strukturę w celu wyświetlenia elementu OLE, dzięki czemu jest całkowicie widoczna podczas edycji.
virtual void OnShowItem();
Uwagi
Jest ona używana, gdy aplikacja kontenera obsługuje linki do elementów osadzonych (czyli jeśli klasa dokumentów pochodzi z COleLinkingDoc). Ta funkcja jest wywoływana podczas aktywacji w miejscu lub gdy element OLE jest źródłem linku i użytkownik chce go edytować. Domyślna implementacja aktywuje pierwszy widok w dokumencie kontenera. Zastąpij tę funkcję, aby przewinąć dokument tak, aby element OLE był widoczny.
COleClientItem::OnUpdateFrameTitle
Wywoływana przez platformę podczas aktywacji w miejscu w celu zaktualizowania paska tytułu okna ramowego.
virtual BOOL OnUpdateFrameTitle();
Wartość zwracana
Nonzero, jeśli ta funkcja pomyślnie zaktualizowała tytuł ramki, w przeciwnym razie zero.
Uwagi
Domyślna implementacja nie zmienia tytułu okna ramki. Zastąpij tę funkcję, jeśli chcesz użyć innego tytułu ramki dla aplikacji, na przykład "element aplikacji - serwera w nazwie dokumentu" (jak w sekcji "Microsoft Excel — arkusz kalkulacyjny w REPORT.DOC"). Jest to zaawansowane przesłonięcia.
COleClientItem::ReactivateAndUndo
Wywołaj tę funkcję, aby ponownie uaktywnić element OLE i cofnąć ostatnią operację wykonywaną przez użytkownika podczas edycji w miejscu.
BOOL ReactivateAndUndo();
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Jeśli aplikacja kontenera obsługuje polecenie cofania, wywołaj tę funkcję, jeśli użytkownik wybierze polecenie cofnij natychmiast po dezaktywacji elementu OLE.
Jeśli aplikacja serwera jest zapisywana w bibliotekach klas programu Microsoft Foundation, ta funkcja powoduje wywołanie serwera COleServerDoc::OnReactivateAndUndo.
Aby uzyskać więcej informacji, zobacz IOleInPlaceObject::ReactivateAndUndo w zestawie Windows SDK.
COleClientItem::Release
Wywołaj tę funkcję, aby wyczyścić zasoby używane przez element OLE.
virtual void Release(OLECLOSE dwCloseOption = OLECLOSE_NOSAVE);
Parametry
dwCloseOption
Flaga określająca, w jakich okolicznościach element OLE jest zapisywany po powrocie do stanu załadowanego. Aby uzyskać listę możliwych wartości, zobacz COleClientItem::Close.
Uwagi
Release
element jest wywoływany COleClientItem
przez destruktor.
Aby uzyskać więcej informacji, zobacz IUnknown::Release w zestawie Windows SDK.
COleClientItem::Reload
Zamyka i ponownie ładuje element.
BOOL Reload();
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Wywołaj Reload
funkcję po aktywowaniu elementu jako elementu innego typu przez wywołanie funkcji ActivateAs.
COleClientItem::Run
Uruchamia aplikację skojarzona z tym elementem.
void Run();
Uwagi
Wywołaj funkcję składową, Run
aby uruchomić aplikację serwera przed aktywowaniem elementu. Jest to wykonywane automatycznie przez funkcję Activate i DoVerb, więc zwykle nie jest konieczne wywołanie tej funkcji. Wywołaj tę funkcję, jeśli jest konieczne uruchomienie serwera w celu ustawienia atrybutu elementu, takiego jak SetExtent, przed wykonaniem polecenia DoVerb.
COleClientItem::SetDrawAspect
Wywołaj funkcję składową SetDrawAspect
, aby ustawić element "aspekt" lub widok.
virtual void SetDrawAspect(DVASPECT nDrawAspect);
Parametry
nDrawAspect
Wartość z wyliczenia DVASPECT. Ten parametr może mieć jedną z następujących wartości:
DVASPECT_CONTENT Element jest reprezentowany w taki sposób, że może być wyświetlany jako obiekt osadzony wewnątrz kontenera.
DVASPECT_THUMBNAIL Element jest renderowany w reprezentacji "miniatury", aby można było je wyświetlić w narzędziu przeglądania.
DVASPECT_ICON Element jest reprezentowany przez ikonę.
DVASPECT_DOCPRINT Element jest reprezentowany tak, jakby został wydrukowany przy użyciu polecenia Drukuj z menu Plik.
Uwagi
Aspekt określa, jak element ma być renderowany przez rysowanie , gdy jest używana wartość domyślna dla argumentu nDrawAspect tej funkcji.
Ta funkcja jest wywoływana automatycznie przez ikonę zmiany (i inne okna dialogowe, które bezpośrednio wywołają okno dialogowe Ikona zmiany), aby włączyć kultowy aspekt wyświetlania po zażądaniu przez użytkownika.
COleClientItem::SetExtent
Wywołaj tę funkcję, aby określić ilość miejsca dostępnego dla elementu OLE.
void SetExtent(
const CSize& size,
DVASPECT nDrawAspect = DVASPECT_CONTENT);
Parametry
rozmiar
Obiekt CSize zawierający informacje o rozmiarze.
nDrawAspect
Określa aspekt elementu OLE, którego granice mają być ustawione. Aby uzyskać możliwe wartości, zobacz SetDrawAspect.
Uwagi
Jeśli aplikacja serwera została napisana przy użyciu biblioteki klas programu Microsoft Foundation, spowoduje to wywołanie funkcji składowej OnSetExtent odpowiedniego COleServerItem
obiektu. Element OLE może następnie odpowiednio dostosować jego wyświetlacz. Wymiary muszą znajdować się w MM_HIMETRIC jednostkach. Wywołaj tę funkcję, gdy użytkownik zmieni rozmiar elementu OLE lub jeśli obsługuje jakąś formę negocjacji układu.
Aby uzyskać więcej informacji, zobacz IOleObject::SetExtent w zestawie Windows SDK.
COleClientItem::SetHostNames
Wywołaj tę funkcję, aby określić nazwę aplikacji kontenera i nazwę kontenera dla osadzonego elementu OLE.
void SetHostNames(
LPCTSTR lpszHost,
LPCTSTR lpszHostObj);
Parametry
lpszHost
Wskaźnik do nazwy widocznej przez użytkownika aplikacji kontenera.
lpszHostObj
Wskaźnik do identyfikującego ciąg kontenera, który zawiera element OLE.
Uwagi
Jeśli aplikacja serwera została napisana przy użyciu biblioteki klas programu Microsoft Foundation, ta funkcja wywołuje funkcję COleServerDoc
składową OnSetHostNames dokumentu zawierającego element OLE. Te informacje są używane w tytułach okien, gdy element OLE jest edytowany. Za każdym razem, gdy dokument kontenera jest ładowany, struktura wywołuje tę funkcję dla wszystkich elementów OLE w dokumencie. SetHostNames
dotyczy tylko elementów osadzonych. Nie jest konieczne wywołanie tej funkcji za każdym razem, gdy osadzony element OLE jest aktywowany do edycji.
Jest to również wywoływane automatycznie z nazwą aplikacji i nazwą dokumentu, gdy obiekt jest ładowany lub gdy plik jest zapisywany pod inną nazwą. W związku z tym nie jest zwykle konieczne bezpośrednie wywołanie tej funkcji.
Aby uzyskać więcej informacji, zobacz IOleObject::SetHostNames w zestawie Windows SDK.
COleClientItem::SetIconicMetafile
Buforuje metaplik używany do rysowania ikony elementu.
BOOL SetIconicMetafile(HGLOBAL hMetaPict);
Parametry
hMetaPict
Uchwyt do metapliku używanego do rysowania ikony elementu.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Pobierz metaplik za pomocą metody GetIconicMetafile .
Parametr hMetaPict jest kopiowany do elementu, dlatego obiekt wywołujący musi zwolnić hMetaPict .
COleClientItem::SetItemRects
Wywołaj tę funkcję, aby ustawić prostokąt ograniczenia lub widoczny prostokąt elementu OLE.
BOOL SetItemRects(
LPCRECT lpPosRect = NULL,
LPCRECT lpClipRect = NULL);
Parametry
lprcPosRect
Wskaźnik do prostokąta zawierającego granice elementu OLE względem okna nadrzędnego we współrzędnych klienta.
lprcClipRect
Wskaźnik do prostokąta zawierającego granice widocznej części elementu OLE względem okna nadrzędnego we współrzędnych klienta.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie, 0.
Uwagi
Ta funkcja jest wywoływana przez domyślną implementację funkcji składowej OnChangeItemPosition . Należy wywołać tę funkcję za każdym razem, gdy pozycja lub widoczna część elementu OLE ulegnie zmianie. Zazwyczaj oznacza to, że wywołujesz je z funkcji składowych OnSize i OnScrollBy widoku.
Aby uzyskać więcej informacji, zobacz IOleInPlaceObject::SetObjectRects w zestawie Windows SDK.
COleClientItem::SetLinkUpdateOptions
Wywołaj tę funkcję, aby ustawić opcję aktualizacji łącza dla prezentacji określonego połączonego elementu.
void SetLinkUpdateOptions(OLEUPDATE dwUpdateOpt);
Parametry
dwUpdateOpt
Wartość opcji link-update dla tego elementu. Ta wartość musi być jedną z następujących wartości:
OLEUPDATE_ALWAYS Zaktualizuj połączony element, gdy jest to możliwe. Ta opcja obsługuje przycisk radiowy Automatyczna aktualizacja łącza w oknie dialogowym Linki.
OLEUPDATE_ONCALL Zaktualizuj połączony element tylko na żądanie z aplikacji kontenera (gdy wywoływana jest funkcja składowa UpdateLink ). Ta opcja obsługuje przycisk radiowy Ręczne aktualizowanie linków w oknie dialogowym Linki.
Uwagi
Zazwyczaj nie należy zmieniać opcji aktualizacji wybranych przez użytkownika w oknie dialogowym Linki.
Aby uzyskać więcej informacji, zobacz IOleLink::SetUpdateOptions w zestawie Windows SDK.
COleClientItem::SetPrintDevice
Wywołaj tę funkcję, aby zmienić urządzenie print-target dla tego elementu.
BOOL SetPrintDevice(const DVTARGETDEVICE* ptd);
BOOL SetPrintDevice(const PRINTDLG* ppd);
Parametry
Ptd
Wskaźnik do struktury danych DVTARGETDEVICE , która zawiera informacje o nowym urządzeniu docelowym wydruku. Może mieć wartość NULL.
Ppd
Wskaźnik do struktury danych PRINTDLG , która zawiera informacje o nowym urządzeniu docelowym wydruku. Może mieć wartość NULL.
Wartość zwracana
Nonzero, jeśli funkcja zakończyła się pomyślnie; w przeciwnym razie 0.
Uwagi
Ta funkcja aktualizuje urządzenie print-target dla elementu, ale nie odświeża pamięci podręcznej prezentacji. Aby zaktualizować pamięć podręczną prezentacji dla elementu, wywołaj metodę UpdateLink.
Argumenty tej funkcji zawierają informacje używane przez system OLE do identyfikowania urządzenia docelowego. Struktura PRINTDLG
zawiera informacje używane przez system Windows do inicjowania wspólnego okna dialogowego Drukowanie. Gdy użytkownik zamknie okno dialogowe, system Windows zwraca informacje o wyborach użytkownika w tej strukturze. Element m_pd
członkowski obiektu CPrintDialog jest strukturą PRINTDLG
.
Aby uzyskać więcej informacji na temat tej struktury, zobacz PRINTDLG w zestawie Windows SDK.
Aby uzyskać więcej informacji, zobacz DVTARGETDEVICE w zestawie Windows SDK.
COleClientItem::UpdateLink
Wywołaj tę funkcję, aby natychmiast zaktualizować dane prezentacji elementu OLE.
BOOL UpdateLink();
Wartość zwracana
Nonzero na sukces; w przeciwnym razie 0.
Uwagi
W przypadku elementów połączonych funkcja znajduje źródło linku w celu uzyskania nowej prezentacji dla elementu OLE. Ten proces może obejmować uruchamianie co najmniej jednej aplikacji serwera, co może być czasochłonne. W przypadku elementów osadzonych funkcja działa rekursywnie, sprawdzając, czy osadzony element zawiera łącza, które mogą być nieaktualne i aktualizować je. Użytkownik może również ręcznie zaktualizować poszczególne linki przy użyciu okna dialogowego Łącza.
Aby uzyskać więcej informacji, zobacz IOleLink::Update w zestawie Windows SDK.
Zobacz też
Przykład MFCBIND
Przykład MFC OCLIENT
Klasa CDocItem
Wykres hierarchii
Klasa COleServerItem