Metode IDiscMaster2::get_Item (imapi2.h)
Mengambil pengidentifikasi unik perangkat disk yang ditentukan.
Sintaks
HRESULT get_Item(
[in] LONG index,
[out] BSTR *value
);
Parameter
[in] index
Indeks berbasis nol perangkat yang pengidentifikasi uniknya ingin Anda ambil.
Nilai indeks dapat berubah selama aktivitas PNP saat perangkat ditambahkan atau dihapus dari komputer, atau di seluruh sesi boot.
[out] value
String yang berisi pengidentifikasi unik perangkat disk yang terkait dengan indeks yang ditentukan.
Menampilkan nilai
S_OK dikembalikan pada keberhasilan, tetapi kode keberhasilan lainnya dapat dikembalikan sebagai hasil dari implementasi. Kode kesalahan berikut biasanya dikembalikan pada kegagalan operasi, tetapi tidak mewakili satu-satunya nilai kesalahan yang mungkin:
Menampilkan kode | Deskripsi |
---|---|
|
Satu atau beberapa argumen tidak valid.
Nilai: 0x80070057 |
|
Pointer tidak valid.
Nilai: 0x80004003 |
|
Gagal mengalokasikan memori yang diperlukan.
Nilai: 0x8007000E |
Keterangan
Untuk menghitung semua pengidentifikasi, panggil metode IDiscMaster2::get__NewEnum .
Sampel berikut menunjukkan cara menghitung ulang drive optik untuk memperhitungkan drive yang ditambahkan atau dihapus secara akurat setelah pembuatan awal objek IDiscMaster2 . Ini dicapai melalui metode IDiscMaster2::get_Item dan IDiscMaster2::get_Count :
#include <windows.h>
#include <tchar.h>
#include <imapi2.h>
#include <objbase.h>
#include <stdio.h>
#pragma comment(lib, "ole32.lib")
#pragma comment(lib, "user32.lib")
int __cdecl _tmain(int argc, TCHAR* argv[])
{
BSTR bstrDeviceName;
HRESULT hr = S_OK;
BOOL bComInitialised;
IDiscMaster2* discMaster;
UINT iCounter = 0;
LONG lValue = 0;
bComInitialised = SUCCEEDED(CoInitializeEx(0, COINIT_MULTITHREADED));
// Create an object of IDiscMaster2
if (SUCCEEDED(hr)){
CoCreateInstance(
CLSID_MsftDiscMaster2,
NULL, CLSCTX_ALL,
IID_PPV_ARGS(&discMaster)
);
if(FAILED(hr)){
_tprintf(TEXT("\nUnsuccessful in creating an instance of CLSID_MsftDiscMaster2.\n\nError returned: 0x%x\n"), hr);
return 0;
}
}
//
// Loop twice and get the optical drives attached to the system,
// first time just get the current configuration and second time
// prompt the user to change the configuration and then get the
// altered configuration.
//
do{
// Get the number of drives
if (SUCCEEDED(hr)){
hr = discMaster->get_Count(&lValue);
if (SUCCEEDED(hr)){
_tprintf(TEXT("\nTotal number of drives = %d\n"), lValue);
}
}
// Print all the optical drives attached to the system
if (SUCCEEDED(hr)){
for(LONG iCount = 0; iCount < lValue; iCount++) {
hr = discMaster->get_Item(iCount, &bstrDeviceName);
_tprintf(TEXT("\nUnique identifier of the disc device associated with index %d is: %s\n"), iCount, bstrDeviceName);
}
}
// Prompt the user to unhook or add drives
if (iCounter < 1){
MessageBox(NULL,TEXT("Please un-hook or add drives and hit OK"), TEXT("Manual Action"), MB_OK);
_tprintf(TEXT("\nGetting the altered configuration ... \n"));
}
iCounter++;
}while(iCounter < 2);
discMaster->Release();
CoUninitialize();
bComInitialised = FALSE;
return 0;
Persyaratan
Klien minimum yang didukung | Windows Vista, Windows XP dengan SP2 [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2003 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | imapi2.h |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk