Freigeben über


IWMDMStorageControl2::Insert2-Methode (mswmdm.h)

Die Insert2-Methode fügt Inhalte in/neben den Speicher ein. Diese Methode erweitert IWMDMStorageControl::Insert , indem die Anwendung einen neuen Zielnamen angeben und einen Zeiger auf ein benutzerdefiniertes COM-Objekt bereitstellen kann.

Syntax

HRESULT Insert2(
  [in]  UINT           fuMode,
  [in]  LPWSTR         pwszFileSource,
  [in]  LPWSTR         pwszFileDest,
  [in]  IWMDMOperation *pOperation,
  [in]  IWMDMProgress  *pProgress,
  [in]  IUnknown       *pUnknown,
  [out] IWMDMStorage   **ppNewObject
);

Parameter

[in] fuMode

Verarbeitungsmodus, der für den Insert2-Vorgang verwendet wird. In der folgenden Tabelle sind die Verarbeitungsmodi aufgeführt, die im fuMode-Parameter angegeben werden können. Sie müssen genau einen der ersten beiden Modi angeben, genau einen der STORAGECONTROL-Modi und genau einen der INHALTSmodi. Wenn sowohl WMDM_MODE_BLOCK als auch WMDM_MODE_THREAD angegeben werden, wird der Blockmodus verwendet.

Kombinationen Mode BESCHREIBUNG
Genau eine der folgenden: WMDM_MODE_BLOCK Der Vorgang wird mithilfe der Blockmodusverarbeitung ausgeführt. Der Aufruf wird erst zurückgegeben, wenn der Vorgang abgeschlossen ist.
- WMDM_MODE_THREAD Der Vorgang wird mithilfe der Threadmodusverarbeitung ausgeführt. Der Aufruf wird sofort zurückgegeben, und der Vorgang wird in einem Hintergrundthread ausgeführt.
Optional WMDM_MODE_QUERY Es wird ein Test durchgeführt, um festzustellen, ob der Einfügevorgang erfolgreich war, aber der Einfügevorgang nicht ausgeführt wird.
Genau eine der folgenden: WMDM_STORAGECONTROL_INSERTBEFORE Das Objekt wird vor dem Zielobjekt eingefügt.
- WMDM_STORAGECONTROL_INSERTAFTER Das Objekt wird nach dem Zielobjekt eingefügt.
- WMDM_STORAGECONTROL_INSERTINTO Das Objekt wird in das aktuelle Objekt eingefügt. Dies funktioniert nur, wenn das aktuelle Objekt ein Ordner ist.
Optional WMDM_FILE_CREATE_OVERWRITE Das -Objekt ersetzt das Zielobjekt.
Genau eine der folgenden: WMDM_CONTENT_FILE Der eingefügte Inhalt ist eine Datei.
- WMDM_CONTENT_FOLDER Der eingefügte Inhalt ist ein Ordner. Dadurch wird der Inhalt des Ordners nicht übertragen.
Optional WMDM_CONTENT_OPERATIONINTERFACE Der eingefügte Inhalt ist eine Vorgangsschnittstelle. Die Daten für den Inhalt sollten in die von der Anwendung implementierte IWMDMOperation-Schnittstelle geschrieben werden.
Optional WMDM_MODE_PROGRESS Statusbenachrichtigungen sollten über den pProgress-Parameter gesendet werden.
Optional: WMDM_MODE_TRANSFER_PROTECTED Die Einfügung befindet sich im geschützten Übertragungsmodus.
- WMDM_MODE_TRANSFER_UNPROTECTED Das Einfügen befindet sich im ungeschützten Übertragungsmodus.

[in] pwszFileSource

Zeiger auf eine Zeichenfolge mit breitem Zeichen und NULL-Ende, die den vollständigen Namen und Pfad des Objekts angibt, das an das Gerät gesendet werden soll. Dieser Parameter muss NULL sein, wenn WMDM_CONTENT_OPERATIONINTERFACE in fuMode angegeben ist.

[in] pwszFileDest

Optionaler Dateiname auf dem Gerät. Wenn nicht angegeben und die Anwendung einen IWMDMOperation-Zeiger an pOperation übergibt, fordert Windows Media Geräte-Manager einen Zielnamen an, indem IWMDMOperation::GetObjectName aufgerufen wird. Wenn nicht angegeben und die Anwendung pOperation nicht verwendet, werden der ursprüngliche Dateiname und die ursprüngliche Erweiterung (ohne Pfad) verwendet.

[in] pOperation

Optionaler Zeiger auf eine IWMDMOperation-Schnittstelle , um die Übertragung von Inhalten auf ein Mediengerät zu steuern. Wenn angegeben, muss fuMode das flag WMDM_CONTENT_OPERATIONINTERFACE enthalten. Dieser Parameter muss NULL sein, wenn WMDM_CONTENT_FILE oder WMDM_CONTENT_FOLDER in fuMode angegeben ist.

[in] pProgress

Optionaler Zeiger auf eine IWMDMProgress-Schnittstelle , um den Aktionsfortschritt zurück an die Anwendung zu melden. Wenn angegeben, sollte fuMode WMDM_MODE_PROGRESS enthalten.

[in] pUnknown

Optionaler IUnknown-Zeiger eines benutzerdefinierten COM-Objekts, das an den Anbieter für sichere Inhalte übergeben werden soll. Dies ermöglicht es, benutzerdefinierte Informationen an einen sicheren Inhaltsanbieter zu übergeben, wenn die Anwendung über ausreichende Informationen zum Anbieter sicherer Inhalte verfügt.

[out] ppNewObject

Zeiger auf eine IWMDMStorage-Schnittstelle , die den neuen Inhalt enthält. Der Aufrufer muss diese Schnittstelle freigeben, wenn er damit fertig ist.

Rückgabewert

Die Methode gibt ein HRESULT zurück. Alle Schnittstellenmethoden in Windows Media Geräte-Manager können eine der folgenden Klassen von Fehlercodes zurückgeben:

  • Com-Standardfehlercodes
  • In HRESULT-Werte konvertierte Windows-Fehlercodes
  • Windows Media Geräte-Manager Fehlercodes
Eine ausführliche Liste möglicher Fehlercodes finden Sie unter Fehlercodes.

Hinweise

Wenn das Gerät IWMDMStorageControl3::Insert3 unterstützt, ist dies die bevorzugte Methode.

Wenn das WMDM_MODE_THREAD-Flag angegeben ist, sollten Sie die Status der Vervollständigung erhalten, indem Sie entweder IWMDMProgress2::End2 oder IWMDMProgress3::End3 aufrufen. Diese Methoden stellen sicher, dass der Vorgang abgeschlossen ist, und geben auch ein HRESULT mit Erfolgs- oder Fehlerinformationen zurück.

Wenn eine Anwendung WMDM_MODE_THREAD verwendet und einen pProgress-Parameter ungleich NULL übergibt, muss die Anwendung sicherstellen, dass das Objekt, zu dem pProgress gehört, erst zerstört wird, wenn der Einfügevorgang abgeschlossen ist, da Windows Media Geräte-Manager Statusbenachrichtigungen an dieses Objekt sendet. Dieses Objekt kann erst zerstört werden, nachdem es eine End-Benachrichtigung erhalten hat. Wenn dies nicht geschieht, werden Zugriffsverletzungen verursacht.

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile mswmdm.h
Bibliothek Mssachlp.lib

Weitere Informationen

IWMDMDevice::GetStatus

IWMDMOperation-Schnittstelle

IWMDMProgress-Schnittstelle

IWMDMStorage-Schnittstelle

IWMDMStorageControl2-Schnittstelle

IWMDMStorageControl3::Insert3