windows-nt/Source/XPSP1/NT/shell/ext/docpropv3/defprop.cpp
2020-09-26 16:20:57 +08:00

1772 lines
52 KiB
C++

//
// Copyright 2001 - Microsoft Corporation
//
// Created By:
// Geoff Pease (GPease) 23-JAN-2001
//
// Maintained By:
// Geoff Pease (GPease) 23-JAN-2001
//
// Description:
// This file contains the property mapping for property that can be
// displayed in the "Advanced" view of the Summary Tab.
//
#include "pch.h"
#include "defprop.h"
#include "doctypes.h"
//
// Property Folder ID definitions
// HACKHACK: These should go in shlguid
//
// {19469210-75DE-11d2-BE77-00A0C9A83DA1}
static const PFID PFID_Description =
{ 0x19469210, 0x75de, 0x11d2, { 0xbe, 0x77, 0x0, 0xa0, 0xc9, 0xa8, 0x3d, 0xa1 } };
// {19469211-75DE-11d2-BE77-00A0C9A83DA1}
static const PFID PFID_Origin =
{ 0x19469211, 0x75de, 0x11d2, { 0xbe, 0x77, 0x0, 0xa0, 0xc9, 0xa8, 0x3d, 0xa1 } };
// {19469212-75DE-11d2-BE77-00A0C9A83DA1}
static const PFID PFID_ImageProperties =
{ 0x19469212, 0x75de, 0x11d2, { 0xbe, 0x77, 0x0, 0xa0, 0xc9, 0xa8, 0x3d, 0xa1 } };
// {19469213-75DE-11d2-BE77-00A0C9A83DA1}
static const PFID PFID_AudioProperties =
{ 0x19469213, 0x75de, 0x11d2, { 0xbe, 0x77, 0x0, 0xa0, 0xc9, 0xa8, 0x3d, 0xa1 } };
// {19469214-75DE-11d2-BE77-00A0C9A83DA1}
static const PFID PFID_VideoProperties =
{ 0x19469214, 0x75de, 0x11d2, { 0xbe, 0x77, 0x0, 0xa0, 0xc9, 0xa8, 0x3d, 0xa1 } };
// {19469214-75DE-11d2-BE77-00A0C9A83DA1}
static const PFID PFID_MidiProperties =
{ 0x19469215, 0x75de, 0x11d2, { 0xbe, 0x77, 0x0, 0xa0, 0xc9, 0xa8, 0x3d, 0xa1 } };
// {4C927CBB-7994-11d2-BE78-00A0C9A83DA1}
static const PFID PFID_FaxProperties =
{ 0x4c927cbb, 0x7994, 0x11d2, { 0xbe, 0x78, 0x0, 0xa0, 0xc9, 0xa8, 0x3d, 0xa1 } };
// {3F18DAD5-2B47-4ade-9D6B-E751D7AAFCDC}
static const PFID PFID_MusicProperties =
{ 0x3f18dad5, 0x2b47, 0x4ade, { 0x9d, 0x6b, 0xe7, 0x51, 0xd7, 0xaa, 0xfc, 0xdc } };
/* 95329798-08a5-4c9d-82ff-d3b1a8009d44 */
static const PFID PFID_ExifProperties =
{ 0x95329798, 0x08a5, 0x4c9d, { 0x82, 0xff, 0xd3, 0xb1, 0xa8, 0x00, 0x9d, 0x44 } };
// ***************************************************************************
//
// Table Definition Macros
//
// ***************************************************************************
//
// DEFPROP macros
//
#define BEGIN_DEFPROP_MAP( mapname ) \
static const DEFPROPERTYITEM mapname[] = {
#define DEFPROP_ENTRY( name, fmtid, propid, type, srctype, pfid, access, addmissing, ctlID ) \
{ name, &fmtid, propid, type, srctype, &pfid, access, addmissing, FALSE, &ctlID, 0, 0 },
#define DEFPROP_ENUM_ENTRY( name, fmtid, propid, type, srctype, pfid, access, addmissing, ctlID, cVals, vals ) \
{ name, &fmtid, propid, type, srctype, &pfid, access, addmissing, TRUE, &ctlID, cVals, vals },
#define END_DEFPROP_MAP \
{ NULL, NULL, 0, 0, 0, NULL, 0, 0, 0, 0, 0 } };
// ***************************************************************************
//
// Table Definitions
//
// ***************************************************************************
//
// Top level "folder" names
//
static const DEFFOLDERITEM g_rgTopLevelFolders[] = {
{ &PFID_FaxProperties , IDS_FOLDER_FAX }
, { &PFID_ImageProperties , IDS_FOLDER_IMAGE }
, { &PFID_MusicProperties , IDS_FOLDER_MUSIC }
, { &PFID_Description , IDS_FOLDER_DESCRIPTION }
, { &PFID_Origin , IDS_FOLDER_SOURCE }
, { &PFID_AudioProperties , IDS_FOLDER_AUDIO }
, { &PFID_VideoProperties , IDS_FOLDER_VIDEO }
, { NULL , 0 }
};
//
// Template table to lookup VARIANT_BOOLs into strings.
//
static const DEFVAL g_rgBoolYesNo[] = {
{ VARIANT_TRUE , NULL }
, { VARIANT_FALSE , NULL }
, { 0 , NULL }
};
//
// Template table to lookup "Status values" into strings.
//
static const DEFVAL g_rgMediaStatusVals[] = {
{ PIDMSI_STATUS_NORMAL , NULL }
, { PIDMSI_STATUS_NEW , NULL }
, { PIDMSI_STATUS_PRELIM , NULL }
, { PIDMSI_STATUS_DRAFT , NULL }
, { PIDMSI_STATUS_EDIT , NULL }
, { PIDMSI_STATUS_INPROGRESS, NULL }
, { PIDMSI_STATUS_REVIEW , NULL }
, { PIDMSI_STATUS_PROOF , NULL }
, { PIDMSI_STATUS_FINAL , NULL }
, { PIDMSI_STATUS_OTHER , NULL }
, { 0 , NULL }
};
//
// Use these defines to help make the table more readable.
//
#define READONLY TRUE
#define READWRITE FALSE
#define ADDIFMISSING TRUE
#define INGOREIFMISSING FALSE
//
// "Property <--> Folder" mapping table
//
BEGIN_DEFPROP_MAP( g_rgDefPropertyItems )
//
// Properties in the 'General' folder
//
DEFPROP_ENTRY( L"Title"
, FMTID_SummaryInformation
, PIDSI_TITLE
, VT_LPWSTR
, FTYPE_DOC
| FTYPE_XLS
| FTYPE_PPT
| FTYPE_EPS
| FTYPE_FPX
| FTYPE_JPG
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_TGA
| FTYPE_TIF
| FTYPE_ASF
| FTYPE_MP3
| FTYPE_WMV
| FTYPE_WMA
| FTYPE_UNKNOWN
, PFID_Description
, READWRITE
, ADDIFMISSING
, CLSID_DocPropEditBoxControl // single line?
)
DEFPROP_ENTRY( L"Subject"
, FMTID_SummaryInformation
, PIDSI_SUBJECT
, VT_LPWSTR
, FTYPE_DOC
| FTYPE_XLS
| FTYPE_PPT
| FTYPE_EPS
| FTYPE_FPX
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_TGA
| FTYPE_JPG
| FTYPE_UNKNOWN
, PFID_Description
, READWRITE
, ADDIFMISSING
, CLSID_DocPropEditBoxControl // single line?
)
DEFPROP_ENTRY( L"Category"
, FMTID_DocSummaryInformation
, PIDDSI_CATEGORY
, VT_LPWSTR
, FTYPE_DOC
| FTYPE_XLS
| FTYPE_PPT
| FTYPE_EPS
| FTYPE_FPX
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_TGA
| FTYPE_UNKNOWN
, PFID_Description
, READWRITE
, ADDIFMISSING
, CLSID_DocPropEditBoxControl // single line?
)
DEFPROP_ENTRY( L"Keywords"
, FMTID_SummaryInformation
, PIDSI_KEYWORDS
, VT_LPWSTR
, FTYPE_DOC
| FTYPE_XLS
| FTYPE_PPT
| FTYPE_EPS
| FTYPE_FPX
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_TGA
| FTYPE_JPG
| FTYPE_UNKNOWN
, PFID_Description
, READWRITE
, ADDIFMISSING
, CLSID_DocPropMLEditBoxControl
)
DEFPROP_ENTRY( L"Rating"
, FMTID_MediaFileSummaryInformation
, PIDMSI_RATING
, VT_LPWSTR
, FTYPE_EPS
| FTYPE_FPX
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_TGA
, PFID_Description
, READWRITE
, ADDIFMISSING
, CLSID_DocPropEditBoxControl // single line?
)
DEFPROP_ENTRY( L"Template"
, FMTID_SummaryInformation
, PIDSI_TEMPLATE
, VT_LPWSTR
, FTYPE_DOC | FTYPE_XLS | FTYPE_PPT
, PFID_Description
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"PageCount"
, FMTID_SummaryInformation
, PIDSI_PAGECOUNT
, VT_I4
, FTYPE_DOC | FTYPE_XLS | FTYPE_PPT | FTYPE_TIF
, PFID_Description
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"WordCount"
, FMTID_SummaryInformation
, PIDSI_WORDCOUNT
, VT_I4
, FTYPE_DOC | FTYPE_XLS | FTYPE_PPT
, PFID_Description
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"CharCount"
, FMTID_SummaryInformation
, PIDSI_CHARCOUNT
, VT_I4
, FTYPE_DOC | FTYPE_XLS | FTYPE_PPT
, PFID_Description
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"ByteCount"
, FMTID_DocSummaryInformation
, PIDDSI_BYTECOUNT
, VT_I4
, FTYPE_DOC | FTYPE_XLS | FTYPE_PPT
, PFID_Description
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"LineCount"
, FMTID_DocSummaryInformation
, PIDDSI_LINECOUNT
, VT_I4
, FTYPE_DOC | FTYPE_XLS | FTYPE_PPT
, PFID_Description
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"ParCount"
, FMTID_DocSummaryInformation
, PIDDSI_PARCOUNT
, VT_I4
, FTYPE_DOC | FTYPE_XLS | FTYPE_PPT
, PFID_Description
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"SlideCount"
, FMTID_DocSummaryInformation
, PIDDSI_SLIDECOUNT
, VT_I4
, FTYPE_DOC | FTYPE_XLS | FTYPE_PPT
, PFID_Description
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"NoteCount"
, FMTID_DocSummaryInformation
, PIDDSI_NOTECOUNT
, VT_I4
, FTYPE_DOC | FTYPE_XLS | FTYPE_PPT
, PFID_Description
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"HiddenCount"
, FMTID_DocSummaryInformation
, PIDDSI_HIDDENCOUNT
, VT_I4
, FTYPE_DOC | FTYPE_XLS | FTYPE_PPT
, PFID_Description
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"MMClipCount"
, FMTID_DocSummaryInformation
, PIDDSI_MMCLIPCOUNT
, VT_I4
, FTYPE_DOC | FTYPE_XLS | FTYPE_PPT
, PFID_Description
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENUM_ENTRY( L"Scale"
, FMTID_DocSummaryInformation
, PIDDSI_SCALE
, VT_BOOL
, FTYPE_DOC | FTYPE_XLS | FTYPE_PPT
, PFID_Description
, READONLY
, INGOREIFMISSING
, CLSID_DocPropDropListComboControl
, ARRAYSIZE(g_rgBoolYesNo)
, g_rgBoolYesNo
)
#ifdef VECTOR_PROPS
//
// BEGIN: Can't deal with these vector types.
//
DEFPROP_ENTRY( L"HeadingPair"
, FMTID_DocSummaryInformation
, PIDDSI_HEADINGPAIR
, VT_VARIANT | VT_VECTOR
, FTYPE_DOC | FTYPE_XLS | FTYPE_PPT
, PFID_Description
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"DocParts"
, FMTID_DocSummaryInformation
, PIDDSI_DOCPARTS
, VT_LPWSTR | VT_VECTOR
, FTYPE_DOC | FTYPE_XLS | FTYPE_PPT
, PFID_Description
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
//
// END: Can't deal with these vector types
//
#endif VECTOR_PROPS
DEFPROP_ENTRY( L"LinksUpToDate"
, FMTID_DocSummaryInformation
, PIDDSI_LINKSDIRTY
, VT_BOOL
, FTYPE_DOC | FTYPE_XLS | FTYPE_PPT
, PFID_Description
, READONLY
, INGOREIFMISSING
, CLSID_DocPropDropListComboControl
)
DEFPROP_ENTRY( L"Comments"
, FMTID_SummaryInformation
, PIDSI_COMMENTS
, VT_LPWSTR
, FTYPE_DOC
| FTYPE_XLS
| FTYPE_PPT
| FTYPE_EPS
| FTYPE_FPX
| FTYPE_JPG
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_TIF
| FTYPE_TGA
| FTYPE_ASF
| FTYPE_MP3
| FTYPE_WMV
| FTYPE_WMA
| FTYPE_UNKNOWN
, PFID_Description
, READWRITE
, ADDIFMISSING
, CLSID_DocPropMLEditBoxControl
)
DEFPROP_ENTRY( L"FileType"
, FMTID_ImageSummaryInformation
, PIDISI_FILETYPE
, VT_LPWSTR
, FTYPE_IMAGE
| FTYPE_GIF
| FTYPE_EPS
| FTYPE_FPX
| FTYPE_JPG
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_PNG
| FTYPE_TGA
| FTYPE_TIF
, PFID_ImageProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"Width"
, FMTID_ImageSummaryInformation
, PIDISI_CX
, VT_UI4
, FTYPE_IMAGE
| FTYPE_EPS
| FTYPE_FPX
| FTYPE_GIF
| FTYPE_JPG
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_PNG
| FTYPE_TIF
| FTYPE_TGA
| FTYPE_AVI
| FTYPE_ASF
| FTYPE_MP3
| FTYPE_WMV
| FTYPE_WMA
, PFID_ImageProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"Height"
, FMTID_ImageSummaryInformation
, PIDISI_CY
, VT_UI4
, FTYPE_IMAGE
| FTYPE_EPS
| FTYPE_FPX
| FTYPE_GIF
| FTYPE_JPG
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_PNG
| FTYPE_TGA
| FTYPE_TIF
| FTYPE_AVI
| FTYPE_ASF
| FTYPE_MP3
| FTYPE_WMV
, PFID_ImageProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"ResolutionX"
, FMTID_ImageSummaryInformation
, PIDISI_RESOLUTIONX
, VT_UI4
, FTYPE_IMAGE
| FTYPE_EPS
| FTYPE_FPX
| FTYPE_GIF
| FTYPE_JPG
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_PNG
| FTYPE_TGA
| FTYPE_TIF
, PFID_ImageProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"ResolutionY"
, FMTID_ImageSummaryInformation
, PIDISI_RESOLUTIONY
, VT_UI4
, FTYPE_IMAGE
| FTYPE_EPS
| FTYPE_FPX
| FTYPE_GIF
| FTYPE_JPG
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_PNG
| FTYPE_TGA
| FTYPE_TIF
, PFID_ImageProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"BitDepth"
, FMTID_ImageSummaryInformation
, PIDISI_BITDEPTH
, VT_UI4
, FTYPE_IMAGE
| FTYPE_EPS
| FTYPE_FPX
| FTYPE_GIF
| FTYPE_JPG
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_PNG
| FTYPE_TGA
| FTYPE_TIF
, PFID_ImageProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"Colorspace"
, FMTID_ImageSummaryInformation
, PIDISI_COLORSPACE
, VT_LPWSTR
, FTYPE_IMAGE
| FTYPE_EPS
| FTYPE_FPX
| FTYPE_GIF
| FTYPE_JPG
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_PNG
| FTYPE_TGA
| FTYPE_TIF
, PFID_ImageProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"Gamma"
, FMTID_ImageSummaryInformation
, PIDISI_GAMMAVALUE
, VT_UI4
, FTYPE_IMAGE
| FTYPE_EPS
| FTYPE_FPX
| FTYPE_GIF
| FTYPE_JPG
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_PNG
| FTYPE_TGA
| FTYPE_TIF
, PFID_ImageProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"FrameCount"
, FMTID_ImageSummaryInformation
, PIDISI_FRAMECOUNT
, VT_UI4
, FTYPE_IMAGE
| FTYPE_EPS
| FTYPE_FPX
| FTYPE_GIF
| FTYPE_JPG
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_PNG
| FTYPE_TGA
| FTYPE_TIF
| FTYPE_AVI
| FTYPE_ASF
| FTYPE_MP3
| FTYPE_WMV
| FTYPE_WAV
| FTYPE_WMA
, PFID_ImageProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"Compression"
, FMTID_ImageSummaryInformation
, PIDISI_COMPRESSION
, VT_LPWSTR
, FTYPE_IMAGE
| FTYPE_EPS
| FTYPE_FPX
| FTYPE_GIF
| FTYPE_JPG
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_PNG
| FTYPE_TGA
| FTYPE_TIF
, PFID_ImageProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
//
// Properties in the 'Fax' folder
//
DEFPROP_ENTRY( L"FaxTime"
, FMTID_ImageProperties
, TIFFTAG_FAX_END_TIME
, VT_FILETIME
, FTYPE_TIF
, PFID_FaxProperties
, READONLY
, INGOREIFMISSING
, CLSID_DocPropCalendarControl
)
DEFPROP_ENTRY( L"FaxSenderName"
, FMTID_ImageProperties
, TIFFTAG_SENDER_NAME
, VT_LPWSTR
, FTYPE_TIF
, PFID_FaxProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"FaxTSID"
, FMTID_ImageProperties
, TIFFTAG_TSID
, VT_LPWSTR
, FTYPE_TIF
, PFID_FaxProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"FaxCallerID"
, FMTID_ImageProperties
, TIFFTAG_CALLERID
, VT_LPWSTR
, FTYPE_TIF
, PFID_FaxProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"FaxRecipientName"
, FMTID_ImageProperties
, TIFFTAG_RECIP_NAME
, VT_LPWSTR
, FTYPE_TIF
, PFID_FaxProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"FaxRecipientNumber"
, FMTID_ImageProperties
, TIFFTAG_RECIP_NUMBER
, VT_LPWSTR
, FTYPE_TIF
, PFID_FaxProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"FaxCSID"
, FMTID_ImageProperties
, TIFFTAG_CSID
, VT_LPWSTR
, FTYPE_TIF
, PFID_FaxProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"FaxRouting"
, FMTID_ImageProperties
, TIFFTAG_ROUTING
, VT_LPWSTR
, FTYPE_TIF
, PFID_FaxProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
//
// Properties in the 'Source' folder
//
DEFPROP_ENTRY( L"SequenceNo"
, FMTID_MediaFileSummaryInformation
, PIDMSI_SEQUENCE_NO
, VT_LPWSTR
, FTYPE_EPS
| FTYPE_FPX
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_TGA
, PFID_Origin
, READWRITE
, ADDIFMISSING
, CLSID_DocPropEditBoxControl // single line?
)
DEFPROP_ENTRY( L"Owner"
, FMTID_MediaFileSummaryInformation
, PIDMSI_OWNER
, VT_LPWSTR
, FTYPE_EPS
| FTYPE_FPX
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_TGA
, PFID_Origin
, READWRITE
, ADDIFMISSING
, CLSID_DocPropEditBoxControl // single line?
)
DEFPROP_ENTRY( L"Editor"
, FMTID_MediaFileSummaryInformation
, PIDMSI_EDITOR
, VT_LPWSTR
, FTYPE_EPS
| FTYPE_FPX
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_TGA
, PFID_Origin
, READWRITE
, ADDIFMISSING
, CLSID_DocPropEditBoxControl // single line?
)
DEFPROP_ENTRY( L"Supplier"
, FMTID_MediaFileSummaryInformation
, PIDMSI_SUPPLIER
, VT_LPWSTR
, FTYPE_EPS
| FTYPE_FPX
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_TGA
, PFID_Origin
, READWRITE
, ADDIFMISSING
, CLSID_DocPropEditBoxControl // single line?
)
DEFPROP_ENTRY( L"Source"
, FMTID_MediaFileSummaryInformation
, PIDMSI_SOURCE
, VT_LPWSTR
, FTYPE_EPS
| FTYPE_FPX
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_TGA
| FTYPE_UNKNOWN
, PFID_Origin
, READWRITE
, ADDIFMISSING
, CLSID_DocPropEditBoxControl // single line?
)
DEFPROP_ENTRY( L"Copyright"
, FMTID_MediaFileSummaryInformation
, PIDMSI_COPYRIGHT
, VT_LPWSTR
, FTYPE_EPS
| FTYPE_FPX
| FTYPE_JPG
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_TGA
| FTYPE_TIF
, PFID_Origin
, READONLY
, INGOREIFMISSING
, CLSID_DocPropEditBoxControl // single line?
)
DEFPROP_ENTRY( L"Project"
, FMTID_MediaFileSummaryInformation
, PIDMSI_PROJECT
, VT_LPWSTR
, FTYPE_EPS
| FTYPE_FPX
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_TGA
, PFID_Origin
, READWRITE
, ADDIFMISSING
, CLSID_DocPropEditBoxControl // single line?
)
DEFPROP_ENUM_ENTRY( L"Status"
, FMTID_MediaFileSummaryInformation
, PIDMSI_STATUS
, VT_UI4
, FTYPE_EPS
| FTYPE_FPX
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_TGA
, PFID_Origin
, READWRITE
, INGOREIFMISSING
, CLSID_DocPropDropListComboControl
, ARRAYSIZE(g_rgMediaStatusVals)
, g_rgMediaStatusVals
)
DEFPROP_ENTRY( L"Author"
, FMTID_SummaryInformation
, PIDSI_AUTHOR
, VT_LPWSTR
, FTYPE_DOC
| FTYPE_XLS
| FTYPE_PPT
| FTYPE_EPS
| FTYPE_FPX
| FTYPE_JPG
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_TGA
| FTYPE_TIF
| FTYPE_UNKNOWN
, PFID_Origin
, READWRITE
, ADDIFMISSING
, CLSID_DocPropEditBoxControl // single line?
)
DEFPROP_ENTRY( L"LastAuthor"
, FMTID_SummaryInformation
, PIDSI_LASTAUTHOR
, VT_LPWSTR
, FTYPE_DOC | FTYPE_XLS | FTYPE_PPT
, PFID_Origin
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"RevNumber"
, FMTID_SummaryInformation
, PIDSI_REVNUMBER
, VT_LPWSTR
, FTYPE_DOC
| FTYPE_XLS
| FTYPE_PPT
| FTYPE_EPS
| FTYPE_FPX
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_TGA
| FTYPE_UNKNOWN
, PFID_Origin
, READWRITE
, ADDIFMISSING
, CLSID_DocPropEditBoxControl // single line?
)
DEFPROP_ENTRY( L"AppName"
, FMTID_SummaryInformation
, PIDSI_APPNAME
, VT_LPWSTR
, FTYPE_DOC | FTYPE_XLS | FTYPE_PPT
, PFID_Origin
, READWRITE
, ADDIFMISSING
, CLSID_DocPropEditBoxControl // single line?
)
DEFPROP_ENTRY( L"PresentationTarget"
, FMTID_DocSummaryInformation
, PIDDSI_PRESFORMAT
, VT_LPWSTR
, FTYPE_DOC | FTYPE_XLS | FTYPE_PPT
, PFID_Origin
, READWRITE
, INGOREIFMISSING
, CLSID_DocPropEditBoxControl // single line?
)
DEFPROP_ENTRY( L"Company"
, FMTID_DocSummaryInformation
, PIDDSI_COMPANY
, VT_LPWSTR
, FTYPE_DOC | FTYPE_XLS | FTYPE_PPT
, PFID_Origin
, READWRITE
, ADDIFMISSING
, CLSID_DocPropEditBoxControl // single line?
)
DEFPROP_ENTRY( L"Manager"
, FMTID_DocSummaryInformation
, PIDDSI_MANAGER
, VT_LPWSTR
, FTYPE_DOC | FTYPE_XLS | FTYPE_PPT
, PFID_Origin
, READWRITE
, INGOREIFMISSING
, CLSID_DocPropEditBoxControl // single line?
)
DEFPROP_ENTRY( L"CreateDTM"
, FMTID_SummaryInformation
, PIDSI_CREATE_DTM
, VT_FILETIME // UTC
, FTYPE_DOC | FTYPE_XLS | FTYPE_PPT
, PFID_Origin
, READONLY
, INGOREIFMISSING
, CLSID_DocPropCalendarControl
)
DEFPROP_ENTRY( L"Production"
, FMTID_MediaFileSummaryInformation
, PIDMSI_PRODUCTION
, VT_FILETIME // UTC
, FTYPE_EPS
| FTYPE_FPX
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_TGA
, PFID_Origin
, READWRITE
, ADDIFMISSING
, CLSID_DocPropCalendarControl
)
DEFPROP_ENTRY( L"LastSaveDTM"
, FMTID_SummaryInformation
, PIDSI_LASTSAVE_DTM
, VT_FILETIME // UTC
, FTYPE_DOC | FTYPE_XLS | FTYPE_PPT
, PFID_Origin
, READWRITE
, INGOREIFMISSING
, CLSID_DocPropCalendarControl
)
DEFPROP_ENTRY( L"LastPrinted"
, FMTID_SummaryInformation
, PIDSI_LASTPRINTED
, VT_FILETIME // UTC
, FTYPE_DOC | FTYPE_XLS | FTYPE_PPT
, PFID_Origin
, READONLY
, INGOREIFMISSING
, CLSID_DocPropCalendarControl
)
DEFPROP_ENTRY( L"EditTime"
, FMTID_SummaryInformation
, PIDSI_EDITTIME
, VT_FILETIME // UTC
, FTYPE_DOC | FTYPE_XLS | FTYPE_PPT
, PFID_Origin
, READONLY
, INGOREIFMISSING
, CLSID_DocPropTimeControl
)
DEFPROP_ENTRY( L"Artist"
, FMTID_MUSIC
, PIDSI_ARTIST
, VT_BSTR
, FTYPE_WAV
| FTYPE_WMA
| FTYPE_AVI
| FTYPE_ASF
| FTYPE_MP3
| FTYPE_WMV
, PFID_MusicProperties
, READWRITE
, INGOREIFMISSING
, CLSID_DocPropEditBoxControl // single line?
)
DEFPROP_ENTRY( L"Album Title"
, FMTID_MUSIC
, PIDSI_ALBUM
, VT_BSTR
, FTYPE_WAV
| FTYPE_WMA
| FTYPE_AVI
| FTYPE_ASF
| FTYPE_MP3
| FTYPE_WMV
, PFID_MusicProperties
, READWRITE
, INGOREIFMISSING
, CLSID_DocPropEditBoxControl // single line?
)
DEFPROP_ENTRY( L"Year"
, FMTID_MUSIC
, PIDSI_YEAR
, VT_BSTR
, FTYPE_WAV
| FTYPE_WMA
| FTYPE_AVI
| FTYPE_ASF
| FTYPE_MP3
| FTYPE_WMV
, PFID_MusicProperties
, READWRITE
, INGOREIFMISSING
, CLSID_DocPropEditBoxControl
)
DEFPROP_ENTRY( L"Track Number"
, FMTID_MUSIC
, PIDSI_TRACK
, VT_UI4
, FTYPE_WAV
| FTYPE_WMA
| FTYPE_AVI
| FTYPE_ASF
| FTYPE_WMV
, PFID_MusicProperties
, READWRITE
, INGOREIFMISSING
, CLSID_DocPropEditBoxControl
)
DEFPROP_ENTRY( L"Track Number"
, FMTID_MUSIC
, PIDSI_TRACK
, VT_UI4
, FTYPE_MP3
, PFID_MusicProperties
, READWRITE
, ADDIFMISSING
, CLSID_DocPropEditBoxControl
)
DEFPROP_ENTRY( L"Genre"
, FMTID_MUSIC
, PIDSI_GENRE
, VT_BSTR
, FTYPE_WAV
| FTYPE_WMA
| FTYPE_AVI
| FTYPE_ASF
| FTYPE_MP3
| FTYPE_WMV
, PFID_MusicProperties
, READWRITE
, INGOREIFMISSING
, CLSID_DocPropEditBoxControl
)
DEFPROP_ENTRY( L"Lyrics"
, FMTID_MUSIC
, PIDSI_LYRICS
, VT_BSTR
, FTYPE_WMA
| FTYPE_MP3
, PFID_MusicProperties
, READWRITE
, INGOREIFMISSING
, CLSID_DocPropMLEditBoxControl
)
DEFPROP_ENTRY( L"Duration"
, FMTID_AudioSummaryInformation
, PIDASI_TIMELENGTH
, VT_BSTR
, FTYPE_WAV
| FTYPE_WMA
| FTYPE_UNKNOWN
| FTYPE_AVI
| FTYPE_ASF
| FTYPE_MP3
| FTYPE_WMV
, PFID_AudioProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"Bitrate"
, FMTID_AudioSummaryInformation
, PIDASI_AVG_DATA_RATE
, VT_BSTR
, FTYPE_WAV
| FTYPE_WMA
| FTYPE_UNKNOWN
| FTYPE_AVI
| FTYPE_ASF
| FTYPE_MP3
| FTYPE_WMV
, PFID_AudioProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"Audio Sample Size"
, FMTID_AudioSummaryInformation
, PIDASI_SAMPLE_SIZE
, VT_BSTR
, FTYPE_UNKNOWN
| FTYPE_AVI
| FTYPE_ASF
| FTYPE_MP3
| FTYPE_WMV
| FTYPE_WAV
| FTYPE_WMA
, PFID_AudioProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"Channels"
, FMTID_AudioSummaryInformation
, PIDASI_CHANNEL_COUNT
, VT_UI4
, FTYPE_AVI
| FTYPE_ASF
| FTYPE_MP3
| FTYPE_WMV
| FTYPE_WAV
| FTYPE_WMA
, PFID_AudioProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"Sample Rate"
, FMTID_AudioSummaryInformation
, PIDASI_SAMPLE_RATE
, VT_UI4
, FTYPE_AVI
| FTYPE_ASF
| FTYPE_MP3
| FTYPE_WMV
| FTYPE_WAV
| FTYPE_WMA
, PFID_AudioProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"Audio Format"
, FMTID_AudioSummaryInformation
, PIDASI_FORMAT
, VT_UI4
, FTYPE_AVI
| FTYPE_ASF
| FTYPE_MP3
| FTYPE_WMV
| FTYPE_WAV
| FTYPE_WMA
, PFID_AudioProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"Protected"
, FMTID_DRM
, PIDDRSI_PROTECTED
, VT_BOOL
, FTYPE_WAV
| FTYPE_WMA
| FTYPE_UNKNOWN
| FTYPE_AVI
| FTYPE_ASF
| FTYPE_MP3
| FTYPE_WMV
, PFID_Origin
, READONLY
, INGOREIFMISSING
, CLSID_DocPropDropListComboControl
)
//
// Video entries
//
DEFPROP_ENTRY( L"Frame Rate"
, FMTID_VideoSummaryInformation
, PIDVSI_FRAME_RATE
, VT_UI4
, FTYPE_AVI
| FTYPE_ASF
| FTYPE_MP3
| FTYPE_WMV
| FTYPE_WAV
| FTYPE_WMA
, PFID_VideoProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"Data Rate"
, FMTID_VideoSummaryInformation
, PIDVSI_DATA_RATE
, VT_UI4
, FTYPE_AVI
| FTYPE_ASF
| FTYPE_MP3
| FTYPE_WMV
| FTYPE_WAV
| FTYPE_WMA
, PFID_VideoProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"Video Sample Size"
, FMTID_VideoSummaryInformation
, PIDVSI_SAMPLE_SIZE
, VT_UI4
, FTYPE_AVI
| FTYPE_ASF
| FTYPE_MP3
| FTYPE_WMV
| FTYPE_WAV
| FTYPE_WMA
, PFID_VideoProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"Compression"
, FMTID_VideoSummaryInformation
, PIDVSI_COMPRESSION
, VT_UI4
, FTYPE_AVI
| FTYPE_ASF
| FTYPE_MP3
| FTYPE_WMV
| FTYPE_WAV
| FTYPE_WMA
, PFID_VideoProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"Stream Name"
, FMTID_VideoSummaryInformation
, PIDVSI_STREAM_NAME
, VT_LPWSTR
, FTYPE_AVI
| FTYPE_ASF
| FTYPE_MP3
| FTYPE_WMV
| FTYPE_WAV
| FTYPE_WMA
, PFID_VideoProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
#ifdef MORE_USELESS_PROPS
DEFPROP_ENTRY( L"Security"
, FMTID_SummaryInformation
, PIDSI_DOC_SECURITY
, VT_I4
, FTYPE_DOC | FTYPE_XLS | FTYPE_PPT
, PFID_Origin
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
#endif MORE_USELESS_PROPS
//
// Add entries for EXIF/TIFF properties
//
DEFPROP_ENTRY( L"EquipMake"
, FMTID_ImageProperties
, PropertyTagEquipMake
, VT_LPWSTR
, FTYPE_EPS
| FTYPE_FPX
| FTYPE_GIF
| FTYPE_JPG
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_PNG
| FTYPE_TGA
| FTYPE_TIF
, PFID_ImageProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"EquipModel"
, FMTID_ImageProperties
, PropertyTagEquipModel
, VT_LPWSTR
, FTYPE_EPS
| FTYPE_FPX
| FTYPE_GIF
| FTYPE_JPG
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_PNG
| FTYPE_TGA
| FTYPE_TIF
, PFID_ImageProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"Copyright"
, FMTID_ImageProperties
, PropertyTagCopyright
, VT_LPWSTR
, FTYPE_EPS
| FTYPE_FPX
| FTYPE_GIF
| FTYPE_JPG
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_PNG
| FTYPE_TGA
| FTYPE_TIF
, PFID_ImageProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"Software"
, FMTID_ImageProperties
, PropertyTagSoftwareUsed
, VT_LPWSTR
, FTYPE_EPS
| FTYPE_FPX
| FTYPE_GIF
| FTYPE_JPG
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_PNG
| FTYPE_TGA
| FTYPE_TIF
, PFID_ImageProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"Colorspace"
, FMTID_ImageProperties
, PropertyTagExifColorSpace
, VT_LPWSTR
, FTYPE_EPS
| FTYPE_FPX
| FTYPE_GIF
| FTYPE_JPG
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_PNG
| FTYPE_TGA
| FTYPE_TIF
, PFID_ImageProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"ShutterSpeed"
, FMTID_ImageProperties
, PropertyTagExifShutterSpeed
, VT_R8
, FTYPE_EPS
| FTYPE_FPX
| FTYPE_GIF
| FTYPE_JPG
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_PNG
| FTYPE_TGA
| FTYPE_TIF
, PFID_ImageProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"Aperture"
, FMTID_ImageProperties
, PropertyTagExifAperture
, VT_R8
, FTYPE_EPS
| FTYPE_FPX
| FTYPE_GIF
| FTYPE_JPG
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_PNG
| FTYPE_TGA
| FTYPE_TIF
, PFID_ImageProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"Distance"
, FMTID_ImageProperties
, PropertyTagExifSubjectDist
, VT_R8
, FTYPE_EPS
| FTYPE_FPX
| FTYPE_GIF
| FTYPE_JPG
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_PNG
| FTYPE_TGA
| FTYPE_TIF
, PFID_ImageProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"Flash"
, FMTID_ImageProperties
, PropertyTagExifFlash
, VT_LPWSTR
, FTYPE_EPS
| FTYPE_FPX
| FTYPE_GIF
| FTYPE_JPG
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_PNG
| FTYPE_TGA
| FTYPE_TIF
, PFID_ImageProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"FlashEnergy"
, FMTID_ImageProperties
, PropertyTagExifFlashEnergy
, VT_R8
, FTYPE_EPS
| FTYPE_FPX
| FTYPE_GIF
| FTYPE_JPG
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_PNG
| FTYPE_TGA
| FTYPE_TIF
, PFID_ImageProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"FocalLength"
, FMTID_ImageProperties
, PropertyTagExifFocalLength
, VT_R8
, FTYPE_EPS
| FTYPE_FPX
| FTYPE_GIF
| FTYPE_JPG
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_PNG
| FTYPE_TGA
| FTYPE_TIF
, PFID_ImageProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"FNumber"
, FMTID_ImageProperties
, PropertyTagExifFNumber
, VT_R8
, FTYPE_EPS
| FTYPE_FPX
| FTYPE_GIF
| FTYPE_JPG
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_PNG
| FTYPE_TGA
| FTYPE_TIF
, PFID_ImageProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"ExposureTime"
, FMTID_ImageProperties
, PropertyTagExifExposureTime
, VT_R8
, FTYPE_EPS
| FTYPE_FPX
| FTYPE_GIF
| FTYPE_JPG
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_PNG
| FTYPE_TGA
| FTYPE_TIF
, PFID_ImageProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"ISOSpeed"
, FMTID_ImageProperties
, PropertyTagExifISOSpeed
, VT_UI2
, FTYPE_EPS
| FTYPE_FPX
| FTYPE_GIF
| FTYPE_JPG
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_PNG
| FTYPE_TGA
| FTYPE_TIF
, PFID_ImageProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"MeteringMode"
, FMTID_ImageProperties
, PropertyTagExifMeteringMode
, VT_UI2
, FTYPE_EPS
| FTYPE_FPX
| FTYPE_GIF
| FTYPE_JPG
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_PNG
| FTYPE_TGA
| FTYPE_TIF
, PFID_ImageProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"LightSource"
, FMTID_ImageProperties
, PropertyTagExifLightSource
, VT_UI2
, FTYPE_EPS
| FTYPE_FPX
| FTYPE_GIF
| FTYPE_JPG
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_PNG
| FTYPE_TGA
| FTYPE_TIF
, PFID_ImageProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"ExposureProg"
, FMTID_ImageProperties
, PropertyTagExifExposureProg
, VT_UI2
, FTYPE_EPS
| FTYPE_FPX
| FTYPE_GIF
| FTYPE_JPG
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_PNG
| FTYPE_TGA
| FTYPE_TIF
, PFID_ImageProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"ExposureBias"
, FMTID_ImageProperties
, PropertyTagExifExposureBias
, VT_R8
, FTYPE_EPS
| FTYPE_FPX
| FTYPE_GIF
| FTYPE_JPG
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_PNG
| FTYPE_TGA
| FTYPE_TIF
, PFID_ImageProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
DEFPROP_ENTRY( L"DateTime"
, FMTID_ImageProperties
, PropertyTagExifDTOrig
, VT_LPWSTR
, FTYPE_EPS
| FTYPE_FPX
| FTYPE_GIF
| FTYPE_JPG
| FTYPE_PCD
| FTYPE_PCX
| FTYPE_PICT
| FTYPE_PNG
| FTYPE_TGA
| FTYPE_TIF
, PFID_ImageProperties
, READONLY
, INGOREIFMISSING
, CLSID_NULL
)
END_DEFPROP_MAP