带有COM标签的文章


几个月之前我写了一篇文章讲怎么把C++/CX的异步操作同步执行(https://hjc.im/winrt-ckai-fa-zhi-yi-bu-zhuan-tong-bu/ ),当初做这个其实最主要就是为了给ffmpeg读写文件。 不过如果只是为了读写文件,这样是个比较笨的办法,更好的办法是使用API函数CreateStreamOverRandomAccessStream直接将IRandomAccessStream转换成COM的IStream。 IStream* fileStreamData; HRESULT hr = CreateStreamOverRandomAccessStream( reinterpret_cast<IUnknown*>(stream), IID_PPV_ARGS(&fileStreamData)); if (!SUCCEEDED(hr)) { ...处理异常 } 得到一个IStream对象之后就可以使用它来读写流了。 例如读取: uint8_t* buf…