IWMDMStorageControl::Insert-Methode (mswmdm.h)
Die Insert-Methode fügt Inhalte in den Speicher auf dem Gerät ab.
Syntax
HRESULT Insert(
[in] UINT fuMode,
[in] LPWSTR pwszFile,
[in] IWMDMOperation *pOperation,
[in] IWMDMProgress *pProgress,
[out] IWMDMStorage **ppNewObject
);
Parameter
[in] fuMode
Ein bitweiser OR der folgenden Werte. 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. | |
Genau eine der folgenden: | WMDM_STORAGECONTROL_INSERTBEFORE | Das Objekt wird vor dem aktuellen Objekt eingefügt. |
WMDM_STORAGECONTROL_INSERTAFTER | Das Objekt wird nach dem aktuellen Objekt eingefügt. | |
WMDM_STORAGECONTROL_INSERTINTO | Das Objekt wird in das aktuelle Objekt eingefügt. Dies funktioniert nur, wenn das aktuelle Objekt ein Ordner ist. | |
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. | |
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. | |
Null oder mehr von: | WMDM_FILE_CREATE_OVERWRITE | Das -Objekt ersetzt das aktuelle Objekt. |
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. | |
WMDM_MODE_PROGRESS | Die -Methode sollte Statusbenachrichtigungen über pProgress zurückgeben. | |
Null oder eins von: | 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] pwszFile
Zeiger auf eine breitzeichenbasierte NULL-Zeichenfolge, die angibt, wo der Inhalt für den Einfügevorgang zu finden ist. Dieser Parameter muss NULL sein, wenn WMDM_CONTENT_OPERATIONINTERFACE in fuMode angegeben ist.
[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, die von Windows Media Geräte-Manager verwendet werden soll, um den Fortschritt zurück an die Anwendung zu melden. Wenn dies verwendet wird, sollte fuMode WMDM_MODE_PROGRESS enthalten.
[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
Hinweise
Wenn das Gerät IWMDMStorageControl3::Insert3 unterstützt, ist dies die bevorzugte Methode.
Der Name und die Erweiterung des auf dem Gerät gespeicherten Objekts sind identisch mit dem Namen und der Erweiterung der Quelldatei (wenn pOperationNULL ist).
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.
Die Insert-Methode garantiert nicht, dass das Gerät das geordnete Einfügen von Dateien unterstützt, stellt jedoch die Flags WMDM_STORAGECONTROL_INSERTBEFORE und WMDM_STORAGECONTROL_INSERTAFTER bereit, falls dies der Fall ist. Wenn das Dateisystem die Reihenfolge (für instance, FAT32) nicht unterstützt, fügen WMDM_STORAGECONTROL_INSERTBEFORE und WMDM_STORAGECONTROL_INSERTAFTER einfach das neue Speicherobjekt auf der gleichen Ebene wie das aktuelle Objekt in der Dateisystemhierarchie ein.
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 |