项目中嵌入了IE控件,近期做了一次大改版,发现网页不能进行复制和剪切了,折腾了半天,发现是com初始化有问题:

修正前的方式:

CoInitialize(NULL);

// do your work

CoUninitialize();

修正后的方式:

OleInitialize(NULL);

 // do your work
 OleUninitialize();

MSDN上对OleInitialize的描述是这样的:

如果应用程序使用如下功能,在调用任何其他Com库中函数之前,必须调用OleInitialize:

> Clipboard 剪切板 ---复制和剪切要用到这个东东

> Drag and Drop 拖拽

> Object linking and embegging(OLE)

> In-Place activation

OleInitialize在内部调用了CoInitialize

05-23 21:42