' ########################################################################################
' Microsoft Windows
' File: WpdShellExtension.inc
' Contents: Contains property keys specific to the WPD shell extension
' Copyright (c) 2011 Jos? Roca
' Portions Copyright (c) Microsoft Corporation.
' All Rights Reserved.
' THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
' EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
' MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
' ########################################################################################
#IF NOT %DEF(PBX_wpdshellextension_PBI)
#DEFINE PBX_wpdshellextension_PBI
%EQUATE `WPDSHELLEXTENSION_INC = 1
'/****************************************************************************
'* This section contains the WPD NSE CLSID to be used in SHParseDisplayName()
'*
'*
'****************************************************************************/
'DEFINE_GUID( CLSID_WPD_NAMESPACE_EXTENSION , 0x35786d3c, 0xb075, 0x49b9, 0x88, 0xdd, 0x02, 0x98, 0x76, 0xe1, 0x1c, 0x01 );
$CLSID_WPD_NAMESPACE_EXTENSION = GUID$("{35786d3c-b075-49b9-88dd-029876e11c01}")
'/****************************************************************************
'* This section defines all property keys associated with:
'* WPDNSE_OBJECT_PROPERTIES_V1
'*
'*
'****************************************************************************/
'DEFINE_GUID( WPDNSE_OBJECT_PROPERTIES_V1 , 0x34d71409, 0x4b47, 0x4d80, 0xaa, 0xac, 0x3a, 0x28, 0xa4, 0xa3, 0xb3, 0xe6 );
$WPDNSE_OBJECT_PROPERTIES_V1 = GUID$("{34d71409-4b47-4d80-aaac-3a28a4a3b3e6}")
'// Properties
'DEFINE_PROPERTYKEY( WPDNSE_OBJECT_HAS_CONTACT_PHOTO , 0x34d71409, 0x4b47, 0x4d80, 0xaa, 0xac, 0x3a, 0x28, 0xa4, 0xa3, 0xb3, 0xe6 , 2 ); // [ VT_BOOL ] Indicates whether the object has a contact photo resource.
MACRO WPDNSE_OBJECT_HAS_CONTACT_PHOTO = GUID$("{34d71409-4b47-4d80-aaac-3a28a4a3b3e6}") & MKDWD$(2) ' // [ VT_BOOL ] Indicates whether the object has a contact photo resource.
'DEFINE_PROPERTYKEY( WPDNSE_OBJECT_HAS_THUMBNAIL , 0x34d71409, 0x4b47, 0x4d80, 0xaa, 0xac, 0x3a, 0x28, 0xa4, 0xa3, 0xb3, 0xe6 , 3 ); // [ VT_BOOL ] Indicates whether the object has a thumbnail resource.
MACRO WPDNSE_OBJECT_HAS_THUMBNAIL = GUID$("{34d71409-4b47-4d80-aaac-3a28a4a3b3e6}") & MKDWD$(3) ' // [ VT_BOOL ] Indicates whether the object has a thumbnail resource.
'DEFINE_PROPERTYKEY( WPDNSE_OBJECT_HAS_ICON , 0x34d71409, 0x4b47, 0x4d80, 0xaa, 0xac, 0x3a, 0x28, 0xa4, 0xa3, 0xb3, 0xe6 , 4 ); // [ VT_BOOL ] Indicates whether the object has an icon resource.
MACRO WPDNSE_OBJECT_HAS_ICON = GUID$("{34d71409-4b47-4d80-aaac-3a28a4a3b3e6}") & MKDWD$(4) ' // [ VT_BOOL ] Indicates whether the object has an icon resource.
'DEFINE_PROPERTYKEY( WPDNSE_OBJECT_HAS_AUDIO_CLIP , 0x34d71409, 0x4b47, 0x4d80, 0xaa, 0xac, 0x3a, 0x28, 0xa4, 0xa3, 0xb3, 0xe6 , 5 ); // [ VT_BOOL ] Indicates whether the object has a voice annotation resource.
MACRO WPDNSE_OBJECT_HAS_AUDIO_CLIP = GUID$("{34d71409-4b47-4d80-aaac-3a28a4a3b3e6}") & MKDWD$(5) ' // [ VT_BOOL ] Indicates whether the object has a voice annotation resource.
'DEFINE_PROPERTYKEY( WPDNSE_OBJECT_HAS_ALBUM_ART , 0x34d71409, 0x4b47, 0x4d80, 0xaa, 0xac, 0x3a, 0x28, 0xa4, 0xa3, 0xb3, 0xe6 , 6 ); // [ VT_BOOL ] Indicates whether the object has an album art resource.
MACRO WPDNSE_OBJECT_HAS_ALBUM_ART = GUID$("{34d71409-4b47-4d80-aaac-3a28a4a3b3e6}") & MKDWD$(6) ' // [ VT_BOOL ] Indicates whether the object has an album art resource.
'DEFINE_PROPERTYKEY( WPDNSE_OBJECT_OPTIMAL_READ_BLOCK_SIZE , 0x34d71409, 0x4b47, 0x4d80, 0xaa, 0xac, 0x3a, 0x28, 0xa4, 0xa3, 0xb3, 0xe6 , 7 ); // [ VT_UI4 ] The optimal buffer size clients can use to read data chunks of the default resource.
MACRO WPDNSE_OBJECT_OPTIMAL_READ_BLOCK_SIZE = GUID$("{34d71409-4b47-4d80-aaac-3a28a4a3b3e6}") & MKDWD$(7) ' // [ VT_UI4 ] The optimal buffer size clients can use to read data chunks of the default resource.
'/****************************************************************************
'* This section defines all the property page values used with extensible
'* property pages. Property sheet extensions will receive a uint with one of
'* of these values in the LOWORD and possibly an index in the HIWORD when
'* their IShellPropSheetExt::ReplacePage method is called. Indexes in the
'* HIWORD refer to the index into the PIDL array of the item whose property
'* page will be replaced. This allows you to replace the correct storage or
'* device property page in a multi-select scenario.
'*
'*
'****************************************************************************/
%EQUATE `WPDNSE_PROPSHEET_DEVICE_GENERAL = &H00000001
%EQUATE `WPDNSE_PROPSHEET_STORAGE_GENERAL = &H00000002
%EQUATE `WPDNSE_PROPSHEET_CONTENT_GENERAL = &H00000004
%EQUATE `WPDNSE_PROPSHEET_CONTENT_REFERENCES = &H00000008
%EQUATE `WPDNSE_PROPSHEET_CONTENT_RESOURCES = &H00000010
%EQUATE `WPDNSE_PROPSHEET_CONTENT_DETAILS = &H00000020
'/****************************************************************************
'* This section defines the IBindCtx options used by IShellFolder::BindToObject.
'*
'*
'****************************************************************************/
'// BindCtx key which tells an IShellFolder to enumerate as quickly as possible.
'// A limited property set will be available for objects when this bind option
'// is used. The limited property set contains name, size, date modified, the
'// read-only, hidden and system file attributes, and the supported resources.
'#define STR_WPDNSE_FAST_ENUM L"WPDNSE Fast Enum"
$$STR_WPDNSE_FAST_ENUM = "WPDNSE Fast Enum"$$
'// BindCtx key which tells an IShellFolder to enumerate as quickly as possible.
'// A limited property set will be available for objects when this bind option
'// is used. The limited property set contains name, persistent unique id, and
'// the content type.
'#define STR_WPDNSE_SIMPLE_ITEM L"WPDNSE SimpleItem"
$$STR_WPDNSE_SIMPLE_ITEM = "WPDNSE SimpleItem"$$
#ENDIF
