共用方式為


將檔案傳送至裝置

視需要轉碼檔案,且已設定格式的所有中繼資料之後,您的應用程式可以將檔案傳送至裝置。 若要這樣做,您必須先取得 IWMDMStorageControl 介面, (或更新版本) 裝置上的目標位置。 Insert旗標會指定新儲存體應該是目標的同層級或子系。 取得目標之後,您可以呼叫 IWMDMStorageControl::InsertIWMDMStorageControl2::Insert2IWMDMStorageControl3::Insert3 來傳輸檔案。 應用程式可以藉由實作 IWMDMOperation來處理讀取檔案資料本身,也可以允許 Insert 方法自動讀取和傳輸檔案,方法是不提供應用程式實作 IWMDMOperation的指標。

下列 C++ 程式碼示範呼叫 Insert3 以將檔案寫入裝置。 如果傳遞至Insert3pOperation指標為Null,則會在一個步驟中傳送檔案;如果此指標是有效的介面指標,Windows Media 裝置管理員會呼叫您的回呼方法,以取得區塊中的資料。 如需如何實作 IWMDMOperation的詳細資訊,請參閱 手動處理檔案傳輸

// Set the flags for the operation
UINT flags = WMDM_MODE_BLOCK | // Synchronous call. 
    WMDM_STORAGECONTROL_INSERTINTO | // Insert it into the destination folder.
    WMDM_CONTENT_FILE | // We're inserting a file.
    WMDM_FILE_CREATE_OVERWRITE; // Overwrite existing files.
if (pOperation != NULL)
    flags |= WMDM_CONTENT_OPERATIONINTERFACE;

// Send the file and metadata.
hr = pStgCtl3->Insert3(
    flags,
    WMDM_FILE_ATTR_FOLDER, // The current storage is a folder.
    const_cast<WCHAR*>(pwszFileName), // Source file.
    L"My New File.wma",//NULL, // Destination file name.
    pOperation, // NULL to allow the SDK to read the file; 
                // non-NULL to present raw data bytes to the SDK.
    pProgress, // Interface to send simple progress notifications.
    pMetadata, // IWMDMMetaData interface previously created and filled.
    NULL, 
    &pNewStorage); // Out: handle to the new storage, if the method succeeds.

將檔案寫入裝置