2010-10-31 99 views
0

我需要设置HTML元素的颜色,我设法获得对样式的引用,但我现在需要将VARIANT传递给put_color方法,但我无法找到有关如何构建变体的信息。如何使用VARIANT指定颜色

我该如何着手为put_color调用指定颜色#ffaaaa

CComPtr<IHTMLStyle> spStyle = htmlElement->get_style; 
spStyle->put_color(what_goes_here?); 

回答

1

你需要用颜色字符串中BSTR值,这是由VARIANT接受的类型之一:

VARIANT color; 
color.vt = VT_BSTR; 
color.bstrVal = SysAllocString(TEXT("#ffaaaa")); 
spStyle->put_color(color); 
VariantClear(&color); 
+0

感谢您的快速回复,你是一个绝对的生命的救星。我用C++编写了很长一段时间,这看起来确实是一种非常复杂的指定颜色的方式。认为这需要相当长的一段时间才能到达那里。 – opsb 2010-10-31 00:22:16

+0

@opsb:不客气。你会遇到很多COM接口中的'VARIANT'类型,因为系统更容易传递这个单独的包装类型,而不是每个函数都有不同的参数类型。 – casablanca 2010-10-31 00:25:21

+1

不要忘记释放你用'SysAllocString'分配的内存。 'VariantClear'将为你照顾这件事。 – 2010-10-31 18:26:27

相关问题