【发布时间】:2011-11-13 07:53:58
【问题描述】:
我研究了预定义的剪贴板格式,其中一个对我来说莫名其妙的是音频流二进制格式,我不知道要复制什么,以便我的剪贴板将包含一段二进制音频数据。在 C# 和托管 C++ 中,剪贴板类也具有这种格式。请您解释一下并给我此类数据的示例。另外,我想知道为什么没有任何视频数据格式。谢谢
【问题讨论】:
标签: c++ visual-c++ audio video audio-streaming
我研究了预定义的剪贴板格式,其中一个对我来说莫名其妙的是音频流二进制格式,我不知道要复制什么,以便我的剪贴板将包含一段二进制音频数据。在 C# 和托管 C++ 中,剪贴板类也具有这种格式。请您解释一下并给我此类数据的示例。另外,我想知道为什么没有任何视频数据格式。谢谢
【问题讨论】:
标签: c++ visual-c++ audio video audio-streaming
CF_WAVE 剪贴板格式只是一个 .wav 文件。如果您将 .wav 文件加载到内存中,则可以使用如下代码将其复制到剪贴板:
DWORD BytesRead;
void* pFData = GlobalLock(hFData);
if (ReadFile(hFile,pFData,GetFileSize(hFile,NULL),&BytesRead,NULL) == FALSE)
{
ErrCode = E_FILE_READ;
}
GlobalUnlock(hFData);
...
if (OpenClipboard(NULL))
{
EmptyClipboard();
if (SetClipboardData(CF_WAVE,hFData) == NULL)
{
GlobalFree(hFData);
}
CloseClipboard();
}
else
{
这里,hFile是WAV文件句柄。
【讨论】: