diff options
| author | David Spruill <[email protected]> | 2026-01-08 17:51:47 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-01-08 17:51:47 -0500 |
| commit | c5fc3ca1fd0e00a7e085ef48abfeff9c0c39817e (patch) | |
| tree | 0e650a0fee8027816bbea82ca1fd9b8e3e6ee24a /wpd/WpdWudfSampleDriver/StorageObjectFakeContent.h | |
| parent | f88e4fbbd4d2671e5cd77e4f60be7a235326797e (diff) | |
| parent | ed3dbe56378117a15105099870f2397671ad99ab (diff) | |
Merge branch 'develop' into user/daspr/kmodsamplefix
Diffstat (limited to 'wpd/WpdWudfSampleDriver/StorageObjectFakeContent.h')
| -rw-r--r-- | wpd/WpdWudfSampleDriver/StorageObjectFakeContent.h | 327 |
1 files changed, 0 insertions, 327 deletions
diff --git a/wpd/WpdWudfSampleDriver/StorageObjectFakeContent.h b/wpd/WpdWudfSampleDriver/StorageObjectFakeContent.h deleted file mode 100644 index d7ca2a7b..00000000 --- a/wpd/WpdWudfSampleDriver/StorageObjectFakeContent.h +++ /dev/null @@ -1,327 +0,0 @@ -#include "StorageObjectFakeContent.h.tmh" - -class StorageObjectFakeContent : public FakeContent -{ -public: - StorageObjectFakeContent() - { - Capacity = 0; - FreeSpaceInBytes = 0; - IsExternalStorage = FALSE; - } - - StorageObjectFakeContent(const FakeContent& src) - { - *this = src; - } - - virtual ~StorageObjectFakeContent() - { - } - - virtual StorageObjectFakeContent& operator= (const StorageObjectFakeContent& src) - { - ObjectID = src.ObjectID; - PersistentUniqueID = src.PersistentUniqueID; - ParentID = src.ParentID; - Name = src.Name; - ContentType = src.ContentType; - MarkedForDeletion = src.MarkedForDeletion; - CanDelete = src.CanDelete; - IsHidden = src.IsHidden; - IsSystem = src.IsSystem; - NonConsumable = src.NonConsumable; - Capacity = src.Capacity; - FreeSpaceInBytes = src.FreeSpaceInBytes; - IsExternalStorage = src.IsExternalStorage; - - return *this; - } - - virtual HRESULT GetSupportedProperties(_COM_Outptr_ IPortableDeviceKeyCollection** ppKeys) - { - HRESULT hr = S_OK; - - if(ppKeys == NULL) - { - hr = E_POINTER; - CHECK_HR(hr, "Cannot have NULL collection parameter"); - return hr; - } - - *ppKeys = NULL; - - if (SUCCEEDED(hr)) - { - hr = AddSupportedProperties(WPD_FUNCTIONAL_CATEGORY_STORAGE, ppKeys); - CHECK_HR(hr, "Failed to add additional properties for StorageObjectFakeContent"); - } - return hr; - } - - virtual HRESULT GetAllValues( - _In_ IPortableDeviceValues* pStore) - { - HRESULT hr = S_OK; - HRESULT hrSetValue = S_OK; - - if(pStore == NULL) - { - hr = E_POINTER; - CHECK_HR(hr, "Cannot have NULL parameter"); - return hr; - } - - // Call the base class to fill in the standard properties - hr = FakeContent::GetAllValues(pStore); - if (FAILED(hr)) - { - CHECK_HR(hr, "Failed to get basic property set"); - return hr; - } - - // Add WPD_STORAGE_CAPACITY - hrSetValue = pStore->SetUnsignedLargeIntegerValue(WPD_STORAGE_CAPACITY, Capacity); - if (hrSetValue != S_OK) - { - CHECK_HR(hrSetValue, "Failed to set WPD_STORAGE_CAPACITY"); - return hrSetValue; - } - - // Add WPD_STORAGE_FREE_SPACE_IN_BYTES - hrSetValue = pStore->SetUnsignedLargeIntegerValue(WPD_STORAGE_FREE_SPACE_IN_BYTES, FreeSpaceInBytes); - if (hrSetValue != S_OK) - { - CHECK_HR(hrSetValue, "Failed to set WPD_STORAGE_FREE_SPACE_IN_BYTES"); - return hrSetValue; - } - - // Add WPD_FUNCTIONAL_OBJECT_CATEGORY - hrSetValue = pStore->SetGuidValue(WPD_FUNCTIONAL_OBJECT_CATEGORY, WPD_FUNCTIONAL_CATEGORY_STORAGE); - if (hrSetValue != S_OK) - { - CHECK_HR(hrSetValue, "Failed to set WPD_FUNCTIONAL_OBJECT_CATEGORY"); - return hrSetValue; - } - - // Add WPD_STORAGE_TYPE - hrSetValue = pStore->SetUnsignedIntegerValue(WPD_STORAGE_TYPE, WPD_STORAGE_TYPE_FIXED_RAM); - if (hrSetValue != S_OK) - { - CHECK_HR(hrSetValue, "Failed to set WPD_STORAGE_TYPE"); - return hrSetValue; - } - - return hr; - } - - virtual HRESULT GetAttributes( - _In_ REFPROPERTYKEY Key, - _COM_Outptr_ IPortableDeviceValues** ppAttributes) - { - HRESULT hr = S_OK; - CComPtr<IPortableDeviceValues> pAttributes; - - if(ppAttributes == NULL) - { - hr = E_POINTER; - CHECK_HR(hr, "Cannot have NULL attributes parameter"); - return hr; - } - - *ppAttributes = NULL; - - if (SUCCEEDED(hr)) - { - hr = CoCreateInstance(CLSID_PortableDeviceValues, - NULL, - CLSCTX_INPROC_SERVER, - IID_IPortableDeviceValues, - (VOID**) &pAttributes); - CHECK_HR(hr, "Failed to CoCreate CLSID_PortableDeviceValues"); - } - - if (SUCCEEDED(hr)) - { - hr = AddFixedPropertyAttributes(FakeStorageContent_Format, Key, pAttributes); - CHECK_HR(hr, "Failed to add fixed property attributes for %ws.%d on StorageObjectFakeContent", CComBSTR(Key.fmtid), Key.pid); - } - - if (SUCCEEDED(hr)) - { - hr = pAttributes->QueryInterface(IID_IPortableDeviceValues, (VOID**) ppAttributes); - CHECK_HR(hr, "Failed to QI for IPortableDeviceValues on IPortableDeviceValues"); - } - return hr; - } - - virtual HRESULT GetSupportedResources(_COM_Outptr_ IPortableDeviceKeyCollection** ppKeys) - { - HRESULT hr = S_OK; - CComPtr<IPortableDeviceKeyCollection> pKeys; - - if(ppKeys == NULL) - { - hr = E_POINTER; - CHECK_HR(hr, "Cannot have NULL collection parameter"); - return hr; - } - - *ppKeys = NULL; - - if (SUCCEEDED(hr)) - { - // Call the base class to fill in the standard resources if any exist - hr = FakeContent::GetSupportedResources(&pKeys); - CHECK_HR(hr, "Failed to get basic supported resources"); - } - - if (SUCCEEDED(hr)) - { - // Add the icon resource - hr = pKeys->Add(WPD_RESOURCE_ICON); - CHECK_HR(hr, "Failed to add WPD_RESOURCE_ICON to supported resource list"); - } - - if (SUCCEEDED(hr)) - { - hr = pKeys->QueryInterface(IID_IPortableDeviceKeyCollection, (VOID**) ppKeys); - CHECK_HR(hr, "Failed to QI for IPortableDeviceKeyCollection on IPortableDeviceKeyCollection"); - } - - return hr; - } - - virtual HRESULT GetResourceAttributes( - _In_ REFPROPERTYKEY Key, - _COM_Outptr_ IPortableDeviceValues** ppAttributes) - { - UNREFERENCED_PARAMETER(Key); - - HRESULT hr = S_OK; - CComPtr<IPortableDeviceValues> pAttributes; - - if(ppAttributes == NULL) - { - hr = E_POINTER; - CHECK_HR(hr, "Cannot have NULL attributes parameter"); - return hr; - } - - *ppAttributes = NULL; - - if (SUCCEEDED(hr)) - { - // Fill in the standard resource attributes - hr = GetCommonResourceAttributes(&pAttributes); - CHECK_HR(hr, "Failed to get common resource attributes set"); - } - - if (SUCCEEDED(hr)) - { - if (IsEqualPropertyKey(Key, WPD_RESOURCE_ICON)) - { - // Override the size attribute for this resource. - hr = pAttributes->SetUnsignedIntegerValue(WPD_RESOURCE_ATTRIBUTE_TOTAL_SIZE, GetResourceSize(GetResourceID())); - CHECK_HR(hr, "Failed to set WPD_RESOURCE_ATTRIBUTE_TOTAL_SIZE"); - - // Override the format attribute for this resource. - hr = pAttributes->SetGuidValue(WPD_RESOURCE_ATTRIBUTE_FORMAT, WPD_OBJECT_FORMAT_ICON); - CHECK_HR(hr, "Failed to set WPD_RESOURCE_ATTRIBUTE_FORMAT"); - } - } - - // Return the resource attributes - if (SUCCEEDED(hr)) - { - hr = pAttributes->QueryInterface(IID_IPortableDeviceValues, (VOID**) ppAttributes); - CHECK_HR(hr, "Failed to QI for IPortableDeviceValues on Wpd IPortableDeviceValues"); - } - return hr; - } - - // This sample driver uses a embedded image file resource as its data. - virtual HRESULT ReadData( - _In_ REFPROPERTYKEY ResourceKey, - DWORD dwStartByte, - _Out_writes_to_(dwNumBytesToRead, *pdwNumBytesRead) BYTE* pBuffer, - DWORD dwNumBytesToRead, - _Out_ DWORD* pdwNumBytesRead) - { - HRESULT hr = S_OK; - DWORD dwBytesToTransfer = 0; - DWORD dwObjectDataSize = 0; - PBYTE pResource = NULL; - - if((pBuffer == NULL) || - (pdwNumBytesRead == NULL)) - { - hr = E_POINTER; - CHECK_HR(hr, "Cannot have NULL parameter"); - return hr; - } - - if (IsEqualPropertyKey(ResourceKey, WPD_RESOURCE_DEFAULT)) - { - return FakeContent::ReadData(ResourceKey, dwStartByte, pBuffer, dwNumBytesToRead, pdwNumBytesRead); - } - - *pdwNumBytesRead = 0; - - pResource = GetResourceData(GetResourceID()); - dwObjectDataSize = GetResourceSize(GetResourceID()); - - if (pResource == NULL) - { - hr = E_UNEXPECTED; - CHECK_HR(hr, "Failed to get resource representing the device icon data"); - } - - // Calculate how many bytes to transfer - if (hr == S_OK) - { - if (dwStartByte < dwObjectDataSize) - { - dwBytesToTransfer = (dwObjectDataSize - dwStartByte); - if (dwBytesToTransfer > dwNumBytesToRead) - { - dwBytesToTransfer = dwNumBytesToRead; - } - } - } - - // Copy the embedded image file data. - if ((hr == S_OK) && (dwBytesToTransfer > 0)) - { - memcpy(pBuffer, pResource + dwStartByte, dwBytesToTransfer); - } - - if (hr == S_OK) - { - *pdwNumBytesRead = dwBytesToTransfer; - } - - return hr; - } - - virtual GUID GetObjectFormat() - { - return FakeStorageContent_Format; - } - - UINT GetResourceID() - { - UINT uiResourceID = IDR_WPD_SAMPLEDRIVER_INTERNAL_STORAGE_ICON; - if(IsExternalStorage == TRUE) - { - uiResourceID = IDR_WPD_SAMPLEDRIVER_EXTERNAL_STORAGE_ICON; - } - - return uiResourceID; - } - - BOOL IsExternalStorage; - ULONGLONG Capacity; - ULONGLONG FreeSpaceInBytes; -}; - |
