[PATCH 3/5] mfplat: Set activation object attributes for enumeration results.
Nikolay Sivov
nsivov at codeweavers.com
Tue Mar 3 03:22:44 CST 2020
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
dlls/mfplat/main.c | 22 +++++++++++++++++++++-
1 file changed, 21 insertions(+), 1 deletion(-)
diff --git a/dlls/mfplat/main.c b/dlls/mfplat/main.c
index e63b8fb9c2..d15bf00337 100644
--- a/dlls/mfplat/main.c
+++ b/dlls/mfplat/main.c
@@ -1265,7 +1265,27 @@ static HRESULT mft_enum(GUID category, UINT32 flags, const MFT_REGISTER_TYPE_INF
{
(*activate)[obj_count] = mft_activate;
- /* FIXME: set some attributes */
+ if (mft->flags & MFT_ENUM_FLAG_LOCALMFT)
+ {
+ IMFActivate_SetUINT32(mft_activate, &MFT_PROCESS_LOCAL_Attribute, 1);
+ }
+ else
+ {
+ if (mft->name)
+ IMFActivate_SetString(mft_activate, &MFT_FRIENDLY_NAME_Attribute, mft->name);
+ if (mft->input_types)
+ IMFActivate_SetBlob(mft_activate, &MFT_INPUT_TYPES_Attributes, (const UINT8 *)mft->input_types,
+ sizeof(*mft->input_types) * mft->input_types_count);
+ if (mft->output_types)
+ IMFActivate_SetBlob(mft_activate, &MFT_OUTPUT_TYPES_Attributes, (const UINT8 *)mft->output_types,
+ sizeof(*mft->output_types) * mft->output_types_count);
+ }
+
+ if (!mft->factory)
+ IMFActivate_SetGUID(mft_activate, &MFT_TRANSFORM_CLSID_Attribute, &mft->clsid);
+
+ IMFActivate_SetUINT32(mft_activate, &MF_TRANSFORM_FLAGS_Attribute, mft->flags);
+ IMFActivate_SetGUID(mft_activate, &MF_TRANSFORM_CATEGORY_Attribute, &mft->category);
obj_count++;
}
--
2.25.1
More information about the wine-devel
mailing list