本文整理汇总了C++中COleDataObject::BeginEnumFormats方法的典型用法代码示例。如果您正苦于以下问题:C++ COleDataObject::BeginEnumFormats方法的具体用法?C++ COleDataObject::BeginEnumFormats怎么用?C++ COleDataObject::BeginEnumFormats使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类COleDataObject
的用法示例。
在下文中一共展示了COleDataObject::BeginEnumFormats方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnClipboardChange
// Called within Copy Thread:
void CCopyThread::OnClipboardChange()
{
Log(_T("OnClipboardChange - Start"));
SyncConfig(); // synchronize with the main thread's copy configuration
// if we are told not to copy on change, then we have nothing to do.
if(!m_LocalConfig.m_bCopyOnChange)
return;
CClip* pClip = new CClip;
CClipTypes* pSupportedTypes = m_LocalConfig.m_pSupportedTypes;
bool bDeleteMemory = false;
//If we are copying from a Ditto Buffer then save all to the database, so when we paste this it will paste
//just like you were using Ctrl-V
if(theApp.m_CopyBuffer.Active())
{
Log(_T("LoadFromClipboard - Copy buffer Active Start"));
pSupportedTypes = new CClipTypes;
if(pSupportedTypes)
{
bDeleteMemory = true;
COleDataObject oleData;
if(oleData.AttachClipboard())
{
oleData.BeginEnumFormats();
FORMATETC format;
while(oleData.GetNextFormat(&format))
{
pSupportedTypes->Add(format.cfFormat);
}
oleData.Release();
}
}
else
{
pSupportedTypes = m_LocalConfig.m_pSupportedTypes;
}
Log(_T("LoadFromClipboard - Copy buffer Active End"));
}
Log(_T("LoadFromClipboard - Before"));
bool bResult = pClip->LoadFromClipboard(pSupportedTypes);
Log(_T("LoadFromClipboard - After"));
if(!bResult)
{
DWORD delay = CGetSetOptions::GetNoFormatsRetryDelay();
if(delay > 0)
{
Log(StrF(_T("LoadFromClipboard didn't find any clips to save, sleeping %dms, then trying again"), delay));
Sleep(delay);
Log(_T("LoadFromClipboard #2 - Before"));
bResult = pClip->LoadFromClipboard(pSupportedTypes);
Log(_T("LoadFromClipboard #2 - After"));
}
else
{
Log(_T("LoadFromClipboard didn't find any clips to save, retry setting is not set, not retrying"));
}
}
if(bDeleteMemory)
{
delete pSupportedTypes;
pSupportedTypes = NULL;
}
if(!bResult)
{
delete pClip;
return; // error
}
if(m_LocalConfig.m_bAsyncCopy)
::PostMessage(m_LocalConfig.m_hClipHandler, WM_CLIPBOARD_COPIED, (WPARAM)pClip, 0);
else
::SendMessage(m_LocalConfig.m_hClipHandler, WM_CLIPBOARD_COPIED, (WPARAM)pClip, 0);
Log(_T("OnClipboardChange - End"));
}