MS IDL có syntax for specifying a defaultvalue
cho các thông số. tôi đã cố gắng để xác định một giá trị mặc định cho một chức năng chấp nhận một VARIANT_BOOL
:Cách chỉ định giá trị mặc định cho VARIANT_BOOL?
[id(42)] HRESULT Foo([in, defaultvalue(VARIANT_TRUE)] VARIANT_BOOL bar);
Và nhận được thông báo lỗi sau:
lỗi MIDL2035: biểu thức hằng mong đợi
là gì cú pháp chính xác để xác định rằng giá trị mặc định của bar
phải là VARIANT_TRUE
?
Bạn có biết rằng việc sử dụng 'TRUE' cũng hoạt động cho' VARIANT_BOOL'? Tôi tò mò như là cách _official_ để làm điều này. – Motti
TRUE có giá trị sai. Cho rằng mshtml.idl là một tệp tiêu đề cốt lõi của Microsoft, tôi cho rằng -1 là cách * chính thức *. –
'TRUE' có giá trị sai trong C++, trong IDL có vẻ như nó có giá trị đúng (xem câu trả lời của tôi). Về MSHTML.idl, bạn tìm thấy nó ở đâu, tôi có tệp .tlh và .tli được tạo từ tệp DLL nhưng không phải là bản gốc .idl – Motti