欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

【作品提交】适用于文件和内存的Hash计算器

【作品提交】适用于文件和内存的Hash计算器

抱歉,这是开发的工具软件中的一个,没打算开源,故无法提供源代码。大赛并未
规定提供完整的源代码,不算违规。遗憾的是忘了提交日期。
这里有其中的一个function,供demo之用。很多人写程序都是不注意细节和格式的,
交流起来就达不到共同提高的目的。

// *--------------------------------------------------------------------------------------------------------------
// copy string to clipboard
extern HRESULT WINAPI Base_CopyMsgToClipboardW(
                            __deref_in      LPCWSTR pwszMsg )
{
    HRESULT hr = S_OK;
    HGLOBAL hClipBuffer = INVALID_HANDLE_VALUE;
    WCHAR*  wszChar = NULL;
    size_t  dwSize = 0;
    if( NULL == pwszMsg )
        return E_INVALIDARG;
    if( 0 == OpenClipboard( GetForegroundWindow() ) ||
        0 == EmptyClipboard( ) ||
        FAILED( hr = StringCbLengthW( pwszMsg, (DWORD)-1, &dwSize ) ) )
    {
        hr = HRESULT_FROM_LAST_ERROR();
        goto Done;
    }
    if( NULL == (hClipBuffer = GlobalAlloc( GMEM_DDESHARE | GMEM_MOVEABLE, dwSize + 10 ) ) ||
        NULL == ( wszChar = (WCHAR*) GlobalLock( hClipBuffer ) ) )
    {
        hr = HRESULT_FROM_LAST_ERROR();
        goto Done;
    }
#pragma warning( disable : 6386 )                                               // VS2005: disable warning as we know it's safe: a bug in VS2005?
    StringCchCopyW( wszChar, (dwSize + 10)/2, pwszMsg );
#pragma warning( default : 6386 )
    GlobalUnlock( hClipBuffer );
    if(  NULL == SetClipboardData( CF_UNICODETEXT, hClipBuffer ) ||
        0 == CloseClipboard() )
        hr = HRESULT_FROM_LAST_ERROR();
Done:
    if( INVALID_HANDLE_VALUE != hClipBuffer &&
        NULL != GlobalFree( hClipBuffer ) )
        hr = HRESULT_FROM_LAST_ERROR();
    return hr;
}

// *--------------------------------------------------------------------------------------------------------------
extern __inline HRESULT HRESULT_FROM_LAST_ERROR( VOID )
{
    DWORD dwError = GetLastError();
    return HRESULT_FROM_WIN32( dwError );
}

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功