Nikolay Sivov : mfplat: Set activation object attributes for enumeration results.

Alexandre Julliard julliard at winehq.org
Tue Mar 3 16:24:53 CST 2020


Module: wine
Branch: master
Commit: 089da73865590a55ae5e9c44728871799ad4af64
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=089da73865590a55ae5e9c44728871799ad4af64

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Tue Mar  3 12:22:44 2020 +0300

mfplat: Set activation object attributes for enumeration results.

Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 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++;
                 }




More information about the wine-cvs mailing list