[ILogicalSensorManager::Connect is no longer available for use as of Windows 8.]
Connects to a logical sensor.
Syntax
HRESULT Connect(
  [in] REFGUID        logicalID,
  [in] IPropertyStore *pPropertyStore
);
Parameters
- logicalID [in] 
 REFGUID that identifies the logical sensor instance.
- pPropertyStore [in] 
 Pointer to the IPropertyStore interface used to transfer data to the driver instance.- The property store can contain one or more of the following values. - Value - Meaning - PKEY_Device_HardwareIds - (VT_VECTOR|VT_LPWSTR) Required. One or more hardware IDs for the driver to be loaded for the logical device instance. The device hardware ID is defined in the driver's INF file. - PKEY_Device_CompatibleIds - (VT_VECTOR|VTLPWSTR) Optional. An array of compatible hardware IDs. 
Return value
The method returns an HRESULT. Possible values include, but are not limited to, those in the following table.
| Return code | Description | 
|---|---|
| S_OK | The method succeeded. | 
| E_ACCESS_DENIED | No permission. Connecting a logical sensor requires administrator privileges. If you receive this error while debugging, restart the development environment as administrator. | 
| HRESULT_FROM_WIN32(ERROR_ALREADY_EXISTS) | The specified logical sensor is already connected. | 
Remarks
This method installs the specified logical sensor, if needed. If the logical sensor device node already exists, this method simply creates a connection to make the logical sensor available to the Sensor and Location Platform.
Examples
The following example code creates a helper method that connects to a specified logical sensor. The method parameters receive the sensor hardware ID and a unique GUID to identify the 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;
}
Requirements
| Minimum supported client | Windows 7 [desktop apps only] | 
| Minimum supported server | None supported | 
| End of client support | Windows 7 | 
| Header | Sensorsapi.h | 
| Library | Sensorsapi.lib | 
| DLL | Sensorsapi.dll |