ID2D1Properties 介面 (d2d1_1.h)

表示一組執行時間可系結和可探索的屬性,可讓資料驅動應用程式修改 Direct2D 效果的狀態。

繼承

ID2D1Properties介面繼承自IUnknown介面。 ID2D1Properties 也有下列類型的成員:

方法

ID2D1Properties介面具有這些方法。

 
ID2D1Properties::GetPropertyCount

取得最上層屬性的數目。
ID2D1Properties::GetPropertyIndex

取得對應至指定屬性名稱的索引。
ID2D1Properties::GetPropertyName

取得對應至指定索引的屬性名稱。 這是範本多載。 請參閱<備註>。
ID2D1Properties::GetPropertyName

取得對應至指定索引的屬性名稱。
ID2D1Properties::GetPropertyNameLength

取得指定屬性名稱的字元數。 這是範本多載。 請參閱<備註>。
ID2D1Properties::GetPropertyNameLength

取得指定屬性名稱的字元數。
ID2D1Properties::GetSubProperties

依索引取得所提供屬性的子屬性。 這是範本多載。
ID2D1Properties::GetSubProperties

依索引取得所提供屬性的子屬性。
ID2D1Properties::GetType

取得所選取屬性的D2D1_PROPERTY_TYPE。 這是範本多載。 請參閱<備註>。
ID2D1Properties::GetType

取得所選取屬性的D2D1_PROPERTY_TYPE。
ID2D1Properties::GetValue

依索引取得屬性的值。 這是範本多載。 請參閱<備註>。 (多載 1/2)
ID2D1Properties::GetValue

依索引取得指定屬性的值。 這是範本多載。 請參閱<備註>。
ID2D1Properties::GetValue

依索引取得屬性的值。 這是範本多載。 請參閱<備註>。 (多載 2/2)
ID2D1Properties::GetValue

依索引取得指定屬性的值。 (多載 1/2)
ID2D1Properties::GetValue

依索引取得指定屬性的值。 (多載 2/2)
ID2D1Properties::GetValueByName

依名稱取得屬性值。 這是範本多載。 請參閱<備註>。 (多載 2/2)
ID2D1Properties::GetValueByName

依名稱取得屬性值。 (多載 2/2)
ID2D1Properties::GetValueByName

依名稱取得屬性值。 (多載 1/2)
ID2D1Properties::GetValueByName

依名稱取得屬性值。 這是範本多載。 請參閱<備註>。 (多載 1/2)
ID2D1Properties::GetValueSize

使用屬性索引,以位元組為單位取得屬性值的大小。 這是範本多載。 請參閱<備註>。
ID2D1Properties::GetValueSize

使用屬性索引,以位元組為單位取得屬性值的大小。
ID2D1Properties::SetValue

依索引設定對應的屬性。 這是範本多載。 (多載 2/2)
ID2D1Properties::SetValue

依索引設定對應的屬性。 這是範本多載。 (多載 1/2)
ID2D1Properties::SetValue

依索引設定對應的屬性。 (多載 1/2)
ID2D1Properties::SetValue

依索引設定對應的屬性。 (多載 2/2)
ID2D1Properties::SetValueByName

將具名屬性設定為指定的值。 (多載 1/2)
ID2D1Properties::SetValueByName

將具名屬性設定為指定的值。 這是範本多載。 請參閱<備註>。
ID2D1Properties::SetValueByName

將具名屬性設定為指定的值。 (多載 2/2)

備註

此介面支援透過索引或屬性名稱進行存取。 除了最上層屬性之外, ID2D1Properties 物件中的每個屬性可能包含 ID2D1Properties 物件,其會儲存描述父屬性的中繼資料。

概述

ID2D1Properties介面會公開一組執行時間可系結和可探索的屬性,允許資料驅動應用程式,例如效果圖形撰寫工具或動畫系統,以修改 Direct2D 效果的狀態。

介面支援透過索引或屬性名稱進行存取。 除了最上層屬性之外, ID2D1Properties 中的每個屬性可能包含子ID2D1Properties 介面,其會儲存描述其父屬性的中繼資料。 透過依屬性索引要求此子介面,或使用以點 (.) 分隔的屬性名稱字串,來存取子屬性。

介面是刻意設計來避免執行時間相依性。 所有配置都是由 API 的呼叫端完成,而且不會使用 VARIANT 類型。 屬性介面通常設計為不會傳回失敗,因為應用程式可能會輕易地變更其呼叫順序,以避免條件。 例如,由於 實例所支援的屬性數目是由 GetPropertyCount 方法傳回,所以採用屬性索引的其他方法不會傳回失敗,除非它們也會使用外掛程式效果的屬性系統。

介面主要是以索引為基礎的存取模型為基礎,並支援屬性內的巢狀子屬性。 不同于目錄結構,屬性本身具有值和類型,而且可以選擇性地支援子屬性 (目錄不是檔案) 。 這些通常是描述 屬性的中繼資料,但也會用來指定物件的陣列。 為了簡化子屬性的存取,並允許以名稱為基礎的存取,定義兩個協助程式方法 – GetValueByName 。 這些使用「dotted」 標記法,以允許直接指定子屬性,例如:

alphaMode = pEffect->GetValueByName<UINT32>(L"Inputs.0.AlphaMode");

或:

pEffect->SetValueByName<UINT32>(
		    L"Inputs.0.AlphaMode", 
		    DXGI_ALPHA_MODE_PREMULTIPLIED);
		

標準效果屬性

屬性名稱/索引 屬性類型 屬性描述
CLSID / D2D1_PROPERTY_CLSID D2D1_PROPERTY_TYPE_CLSID 效果的 CLSID。
DisplayName / D2D1_PROPERTY_DISPLAYNAME D2D1_PROPERTY_TYPE_STRING 效果的可顯示當地語系化名稱。
作者/ D2D1_PROPERTY_AUTHOR D2D1_PROPERTY_TYPE_STRING 效果的作者。
Category / D2D1_PROPERTY_CATEGORY D2D1_PROPERTY_TYPE_STRING 效果的類別。
描述 / D2D1_PROPERTY_DESCRIPTION D2D1_PROPERTY_TYPE_STRING 效果的描述。
輸入/ D2D1_PROPERTY_INPUTS D2D1_PROPERTY_TYPE_ARRAY
注意 此陣列的專案類型為 D2D1_PROPERTY_TYPE_STRING。
 
效果輸入的名稱陣列。 陣列的每個元素都是指定輸入名稱的當地語系化字串。
 

標準 Sub-Properties

以下是可用於中繼資料存取的標準子屬性,而且可在系統和自訂屬性上使用。 如需詳細資訊 ,請參閱D2D1_SUBPROPERTYD2D1_PROPERTY_TYPE 列舉。
屬性名稱/索引 屬性類型 屬性描述
DisplayName / D2D1_SUBPROPERTY_DISPLAYNAME D2D1_PROPERTY_TYPE_STRING 父屬性的可顯示當地語系化名稱。

這個子屬性存在於所有最上層屬性上。

IsReadOnly / D2D1_SUBPROPERTY_ISREADONLY D2D1_PROPERTY_TYPE_BOOL 值,指出是否可以寫入父屬性。

這個子屬性存在於所有最上層屬性上。

預設 / D2D1_SUBPROPERTY_DEFAULT 與父屬性相同。 屬性的預設值。

這個子屬性會選擇性地存在於所有屬性上。

最小值/ D2D1_SUBPROPERTY_MIN 與父屬性相同。
注意 僅適用于數數值型別屬性。
 
父屬性支援設定為 的最小值。
Max / D2D1_SUBPROPERTY_MAX 與父屬性相同。
注意 僅適用于數數值型別屬性。
 
父屬性所支援設定的最大值。
Fields / D2D1_SUBPROPERTY_FIELDS Array / D2D1_PROPERTY_TYPE_ARRAY
注意 僅適用于父屬性的類型為 Enum時。
 
可以設定為父屬性的有效值集。

此陣列中的每個值都是名稱/索引組。 索引可以設定為父系,而名稱是專為 UI 取用而設計的當地語系化值。 請參閱下一節以瞭解更多詳細資訊。

 

陣列類型 Sub-Properties

如需詳細資訊,請參閱 ID2D1Properties::GetTypeD2D1_PROPERTY_TYPE 。 如果屬性類型 D2D1_PROPERTY_TYPE_ARRAY,屬性的值會被視為具有陣列元素計數的 UINT 。 下一個子屬性會將索引直接對應至要求的屬性值。 例如:
Inputs: UINT32 – 2
		Inputs.0 : <Type> – First input
		Inputs.1 : <Type> – Second input
		

上述範例會使用下列子屬性,其會出現在 ARRAY類型屬性上。 請注意,編號的屬性不是系統屬性,而且位於一般 (0x0 – 0x80000000) 範圍中。

屬性名稱 屬性索引 屬性描述
Property.0 0 屬性陣列的第一個專案。
... ... ...
Property.N N 屬性陣列的第N個元素。
 

每個子專案的型別都會是陣列的類型。 在上述範例中,這是字串陣列。

列舉類型 Sub-Properties

如果屬性具有類型 D2D1_PROPERTY_TYPE_ENUM ,則 屬性將具有對應列舉的值。 欄位的子陣列會符合陣列子屬性的一般規則,並包含名稱/值組。 例如:
PixelFormat: ENUM – The pixel format value
		PixelFormat.Fields: UINT32 – The number of fields
		PixelFormat.Fields.0:String – The name of the first enum
		PixelFormat.Fields.0.Index: UINT32 – The value of the enumeration.
		

上述範例會使用下列子屬性。 如需詳細資訊 ,請參閱D2D1_SUBPROPERTYD2D1_PROPERTY_TYPE 列舉。

屬性名稱 屬性索引 屬性描述
Property.Fields D2D1_SUBPROPERTY_FIELDS 陣列類型屬性,提供列舉中每個欄位的相關資訊。
Property.Fields.N N 陣列專案,提供 第 N個列舉值的名稱。
Property.Fields.N.Index D2D1_SUBPROPERTY_INDEX 對應至 第 N個列舉值的索引。

規格需求

   
最低支援的用戶端 適用于 Windows 7 的 Windows 8 和平臺更新 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 適用于 Windows Server 2008 R2 的 Windows Server 2012 和平臺更新 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 d2d1_1.h

另請參閱

ID2D1Effect

IUnknown