Condividi tramite


Funzione OleGetClipboardWithEnterpriseInfo (ole2.h)

Abilita Windows Information Protection illuminata
applicazioni per recuperare un IDataObject dagli Appunti OLE
accompagnato da windows Information Protection informazioni sui dati e sui
applicazione di origine. Queste informazioni consentono
applicazione illuminata per assumere la responsabilità dell'applicazione di Windows Information Protection
criteri, inclusi i prompt dell'interfaccia utente appropriati e
casi di controllo in cui l'utente approva in modo esplicito la copia
dati aziendali in un contesto personale.

Se l'applicazione chiamante non è illuminata o è
configurato come "non allocato" per accedere ai dati aziendali,
quindi questa chiamata si comporta esattamente come OleGetClipboard - applicazione di criteri prima di decidere quale IDataObject restituire,
e specificare stringhe vuote come output.

Sintassi

HRESULT OleGetClipboardWithEnterpriseInfo(
  [out] IDataObject **dataObject,
  [out] PWSTR       *dataEnterpriseId,
  [out] PWSTR       *sourceDescription,
  [out] PWSTR       *targetDescription,
  [out] PWSTR       *dataDescription
);

Parametri

[out] dataObject

Indirizzo della variabile puntatore IDataObject che riceve il puntatore dell'interfaccia all'oggetto dati degli Appunti.

[out] dataEnterpriseId

ID organizzazione dell'applicazione che imposta i dati degli Appunti. Se i dati sono personali, questa sarà una stringa vuota.

[out] sourceDescription

Descrizione dell'applicazione che imposta gli Appunti.

[out] targetDescription

Descrizione dell'applicazione del chiamante da usare nel controllo.

[out] dataDescription

Descrizione dell'oggetto dati da usare nel controllo.

Valore restituito

Questa funzione restituisce S_OK in caso di esito positivo. Altri valori possibili includono quanto segue.

Codice restituito Descrizione
CLIPBRD_E_CANT_OPEN
La funzione OpenClipboard usata all'interno di OleFlushClipboard non è riuscita.
CLIPBRD_E_CANT_CLOSE
La funzione CloseClipboard usata all'interno di OleFlushClipboard non è riuscita.

Commenti

Attenzione I dati degli Appunti non sono attendibili. Analizzare attentamente i dati prima di usarli nell'applicazione.
 
Se si scrive un'applicazione che può accettare dati dagli Appunti, chiamare la funzione OleGetClipboardWithEnterpriseInfo per ottenere un puntatore all'interfaccia IDataObject che è possibile usare per recuperare il contenuto degli Appunti.

OleGetClipboardWithEnterpriseInfo gestisce tre casi:

  • L'applicazione che inserisce i dati negli Appunti con la funzione OleSetClipboard è ancora in esecuzione.
  • L'applicazione che inserisce i dati negli Appunti con la funzione OleSetClipboard ha successivamente chiamato la funzione OleFlushClipboard .
  • Esistono dati da un'applicazione non OLE negli Appunti.
Nel primo caso, l'oggetto dati degli Appunti restituito da OleGetClipboardWithEnterpriseInfo può inoltrare chiamate in base alle esigenze dell'oggetto dati originale posizionato negli Appunti e, pertanto, può potenzialmente effettuare chiamate RPC.

Nel secondo caso OLE crea un oggetto dati predefinito e lo restituisce all'utente. Poiché i dati negli Appunti hanno origine da una chiamata OleSetClipboard , l'oggetto dati fornito da OLE contiene informazioni più accurate sul tipo di dati negli Appunti. In particolare, il supporto originale (TYMED) su cui sono stati offerti i dati è noto. Pertanto, se un'applicazione di origine dati offre un formato specifico degli Appunti, ad esempio cfFOO, in un oggetto di archiviazione e chiama la funzione OleFlushClipboard , l'oggetto di archiviazione viene copiato in memoria e l'handle di memoria hglobal viene inserito negli Appunti. Quando quindi la funzione OleGetClipboardWithEnterpriseInfo crea l'oggetto dati predefinito, l'hglobal dagli Appunti diventa di nuovo un oggetto IStorage . Inoltre, l'enumeratore FORMATETC e il metodo IDataObject::QueryGetData indicano correttamente che il formato degli Appunti originale (cfFOO) è nuovamente disponibile in un TYMED_ISTORAGE.

Nel terzo caso OLE crea ancora un oggetto dati predefinito, ma non sono presenti informazioni speciali sui dati nei formati degli Appunti (in particolare per i formati degli Appunti definiti dall'applicazione). Pertanto, se un supporto di archiviazione basato su hGlobal è stato inserito direttamente negli Appunti tramite una chiamata alla funzione SetClipboardData , l'enumeratore FORMATETC e il metodo IDataObject::QueryGetData non indicare che i dati erano disponibili in un supporto di archiviazione. Una chiamata al metodo IDataObject::GetData per TYMED_ISTORAGE avrà esito positivo, tuttavia. A causa di queste limitazioni, è consigliabile che le applicazioni con riconoscimento OLE interagiscono con gli Appunti usando le funzioni degli Appunti OLE.

L'oggetto dati degli Appunti creato dalla funzione OleGetClipboardWithEnterpriseInfo ha un'implementazione IDataObject abbastanza estesa. L'oggetto dati fornito da OLE può convertire i dati del formato degli Appunti OLE 1 nella rappresentazione prevista da un chiamante OLE 2. Inoltre, tutti i dati strutturati sono disponibili in qualsiasi media strutturata o flat e tutti i dati flat sono disponibili in qualsiasi mezzo flat. Tuttavia, gli oggetti GDI (ad esempio metafile e bitmap) sono disponibili solo nei rispettivi supporti.

Si noti che il membro tymed della struttura FORMATETC usato nell'enumeratore FORMATETC contiene l'unione di supporti supportati. Le applicazioni che cercano informazioni specifiche( ad esempio se CF_TEXT è disponibile in TYMED_HGLOBAL) devono eseguire la maschera di bit appropriata durante il controllo di questo valore.

Se si chiama la funzione OleGetClipboardWithEnterpriseInfo, è consigliabile tenere premuto solo IDataObject restituito per un tempo molto breve. Utilizza le risorse nell'applicazione che l'ha offerta.

Requisiti

Requisito Valore
Client minimo supportato Windows 10 [solo app desktop]
Server minimo supportato Windows Server 2016 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione ole2.h
Libreria Ole32.lib
DLL Ole32.dll

Vedi anche

OleGetClipboard

OleSetClipboard