Menggunakan Sensor Logis
Untuk membuat instans simpul perangkat untuk sensor logis, atau menyambungkan kembali ke simpul perangkat sensor logis yang ada, aplikasi atau layanan harus memanggil ILogicalSensorManager::Connect. Parameter pPropertyStore untuk metode ini memerlukan penunjuk ke antarmuka IPropertyStore yang berisi ID untuk disambungkan oleh driver sensor. Ini berarti Anda harus membuat penyimpanan properti dan menambahkan data ini ke penyimpanan sebelum memanggil metode ini.
Menyambungkan ke Sensor Logis
Untuk menyambungkan ke sensor logis, Anda harus menyediakan, minimal, ID perangkat keras, seperti yang didefinisikan dalam file .inf driver sensor, dan GUID logis yang mengidentifikasi sensor. Platform ini menggunakan GUID ini untuk mengidentifikasi sensor saat Anda memilih untuk memutuskan sambungan, atau menghapus instalan, simpul perangkat sensor.
Contoh kode berikut membuat metode pembantu yang terhubung ke sensor logis tertentu. Parameter metode menerima ID perangkat keras sensor dan GUID unik untuk mengidentifikasi sensor.
HRESULT ConnectToLogicalSensor(PCWSTR* wszHardwareID, GUID guidLogicalID)
{
HRESULT hr = S_OK;
ILogicalSensorManager* pLSM = NULL;
IPropertyStore* pStore = NULL;
PROPVARIANT pv = {};
// Create the property store.
hr = PSCreateMemoryPropertyStore(IID_PPV_ARGS(&pStore));
if(SUCCEEDED(hr))
{
// Create the logical sensor manager.
hr = CoCreateInstance(CLSID_LogicalSensorManager,
NULL,
CLSCTX_INPROC_SERVER,
IID_PPV_ARGS(&pLSM));
}
// Fill in the values.
if(SUCCEEDED(hr))
{
hr = InitPropVariantFromStringVector(wszHardwareID, 1, &pv);
}
if(SUCCEEDED(hr))
{
hr = pStore->SetValue(PKEY_Device_HardwareIds, pv);
}
if(SUCCEEDED(hr))
{
hr = pStore->SetValue(PKEY_Device_CompatibleIds, pv);
}
if(SUCCEEDED(hr))
{
// Connect to the logical sensor.
hr = pLSM->Connect(guidLogicalID, pStore);
}
SafeRelease(&pStore);
SafeRelease(&pLSM);
return hr;
}
Memutuskan sambungan dari Sensor Logis
Untuk memutuskan sambungan dari sensor logis, Anda harus memberikan ID logis yang sama dengan yang Anda gunakan saat Anda memanggil Sambungkan.
Contoh kode berikut membuat fungsi pembantu yang terputus dari sensor logis.
HRESULT DisconnectFromLogicalSensor(GUID guidLogicalID)
{
HRESULT hr = S_OK;
ILogicalSensorManager* pLSM = NULL;
if(SUCCEEDED(hr))
{
// Create the logical sensor manager.
hr = CoCreateInstance(CLSID_LogicalSensorManager,
NULL,
CLSCTX_INPROC_SERVER,
IID_PPV_ARGS(&pLSM));
}
if(SUCCEEDED(hr))
{
hr = pLSM->Disconnect(guidLogicalID);
}
SafeRelease(&pLSM);
return hr;
}
Menghapus instalan Sensor Logis
Untuk menghapus instalan sensor logis, Anda harus memberikan ID logis yang sama dengan yang Anda gunakan saat Anda memanggil Sambungkan.
Contoh kode berikut membuat fungsi pembantu yang menghapus instalan sensor logis.
HRESULT UninstallLogicalSensor(REFGUID guidLogicalID)
{
HRESULT hr = S_OK;
ILogicalSensorManager* pLSM;
// Create the logical sensor manager.
hr = CoCreateInstance(CLSID_LogicalSensorManager,
NULL,
CLSCTX_INPROC_SERVER,
IID_PPV_ARGS(&pLSM));
if(SUCCEEDED(hr))
{
hr = pLSM->Uninstall(guidLogicalID);
}
SafeRelease(&pLSM);
return hr;
}
Topik terkait