gpt4 book ai didi

c# - 如何将 COleDateTime 对象列表作为 SAFEARRAY* 传递

转载 作者:行者123 更新时间:2023-11-28 05:21:17 24 4
gpt4 key购买 nike

这是我的方法定义:

IMSAToolsLibraryInterface : IUnknown
{
//
// Raw methods provided by interface
//

virtual HRESULT __stdcall SetPathXML (
/*[in]*/ BSTR strPathXML,
/*[out]*/ __int64 * iResult ) = 0;
virtual HRESULT __stdcall SavePublisherData (
/*[out]*/ __int64 * iResult ) = 0;
virtual HRESULT __stdcall ReadPublisherData (
/*[out]*/ __int64 * iResult ) = 0;
virtual HRESULT __stdcall Test ( ) = 0;
virtual HRESULT __stdcall AddPublisher (
/*[in]*/ BSTR strName,
/*[in]*/ BSTR strNotes,
/*[in]*/ enum Gender eGender,
/*[in]*/ enum Appointed eAppointedAs,
/*[in]*/ enum Serving eServingAs,
/*[in]*/ VARIANT_BOOL bUseForDemonstrations,
/*[in]*/ VARIANT_BOOL bAvailableMidweek,
/*[in]*/ VARIANT_BOOL bAvailableWeekend,
/*[in]*/ SAFEARRAY * listDatesNotAvailable ) = 0;
};

它现在有一个新的最后一个参数,它实际上是 C# DLL 方法中的 DateTime 对象数组。我已经阅读了一些关于这个主题的内容,似乎从 MFC 我需要使用 COleSafeArray 来创建合适条目的安全数组。

这让我很困惑。我基本上希望能够将 COleDateTime 值列表作为此 SAFEARRAY* 参数传递,但我不知道该怎么做。

最佳答案

COleSafeArray arr;
arr.CreateOneDim(VT_DATE, num_elements);

DATE* data;
arr.AccessData((void**)&data);
data[0] = my_date;
// Assign other elements as needed
arr.UnaccessData();

my_itf_pointer->AddPublisher(..., arr.parray);

关于c# - 如何将 COleDateTime 对象列表作为 SAFEARRAY* 传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41450605/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com