Struktura FORMATETC
Struktura FORMATETC to uogólniony format schowka, ulepszony tak, aby obejmował urządzenie docelowe, aspekt lub widok danych oraz nośnik magazynu. Użytkownik danych, taki jak aplikacja kontenera OLE, przekazuje strukturę FORMATETC jako argument w wywołaniach do IDataObject, aby wskazać typ danych, których chce ze źródła danych, takiego jak obiekt dokumentu złożonego. Źródło używa struktury FORMATETC, aby opisać, jakie formaty może zapewnić.
FORMATETC może opisywać praktycznie dowolne dane, w tym inne obiekty, takie jak np. identyfikatory. Kontener może poprosić jeden z jego obiektów osadzonych o wyświetlenie listy formatów danych przez wywołanie IDataObject::EnumFormatEtc, który zwraca obiekt wyliczający, który implementuje interfejs IEnumFORMATETC. Zamiast odpowiadać jedynie, że ma on "tekst i mapę bitową", obiekt może podać szczegółowy opis danych, w tym urządzenie (zwykle ekran lub drukarka), dla którego jest renderowany, aspekt, który ma być prezentowany użytkownikowi (pełna zawartość, miniatura, ikona lub sformatowany do drukowania) oraz nośnik magazynu zawierający dane (pamięć globalna, plik dysku, obiekt magazynu lub strumień). Ta możliwość ścisłego opisywania danych spowoduje, w miarę upływu czasu, wyższą jakość drukarek i danych wyjściowych ekranu, a także większą wydajność przeglądania danych, gdzie szkic miniatury jest znacznie szybszy do pobrania i wyświetlenia niż w pełni szczegółowe renderowanie.
W poniższej tabeli wymieniono pola struktury danych FORMATETC oraz informacje, które określają.
Pole | Określa |
---|---|
cfFormat |
Format, w którym dane mają być renderowane, który może być standardowym formatem schowka, formatem zastrzeżonym lub formatem OLE. Aby uzyskać więcej informacji na temat formatów OLE, zobacz złożone dokumenty. |
ptd |
Struktura DVTARGETDEVICE, która zawiera wystarczającą ilość informacji o urządzeniu docelowym z systemem Windows, takim jak ekran lub drukarka, dzięki czemu można utworzyć uchwyt do kontekstu urządzenia (hDC) przy użyciu funkcji CreateDC. |
dwAspect |
Aspekt lub widok danych do renderowania; może być pełną zawartością, szkicem miniatury, ikoną lub sformatowanym do drukowania. |
lindex |
Część aspektu, którą nas interesuje; na chwilę obecną wartość musi wynosić -1, co oznacza, że interesuje nas cały widok. |
tymed |
Nośnik danych, który może być pamięcią globalną, plikiem dyskowym lub wystąpieniem jednego z interfejsów magazynowania strukturalnego COM. |