MS IDL ha syntax for specifying a defaultvalue
per i parametri. ho cercato di specificare un valore predefinito per una funzione che accetta un VARIANT_BOOL
:Come specificare un valore predefinito per VARIANT_BOOL?
[id(42)] HRESULT Foo([in, defaultvalue(VARIANT_TRUE)] VARIANT_BOOL bar);
ed ho ottenuto il seguente messaggio di errore:
errore MIDL2035: costante espressione previsto
Che cosa è la sintassi corretta per specificare che il valore predefinito di bar
deve essere VARIANT_TRUE
?
Sapevi che l'uso di "TRUE" funziona anche con "VARIANT_BOOL"? Sono curioso di sapere quale sia il modo ufficiale per farlo. – Motti
TRUE ha il valore sbagliato. Dato che mshtml.idl è un file di intestazione Microsoft principale, suppongo che -1 sia il modo * ufficiale *. –
'TRUE' ha il valore errato in C++, in IDL sembra che abbia il valore corretto (vedi la mia risposta). Per quanto riguarda MSHTML.idl, dove l'hai trovato, ho il .tlh e .tli generato dalla DLL ma non un originale .idl – Motti