⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lbprintf.cpp

📁 DDCAPS For WinCE use under X86
💻 CPP
字号:
//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this source code is subject to the terms of the Microsoft end-user
// license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
// If you did not accept the terms of the EULA, you are not authorized to use
// this source code. For a copy of the EULA, please see the LICENSE.RTF on your
// install media.
//
//=========================================================================
//
//  THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
//  KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
//  IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
//  PURPOSE.
//
//
//=========================================================================
#ifndef STRICT
#define STRICT
#endif


#include "stdafx.h"
#include <windows.h>
#include "ddraw.h"
#include "lbprintf.h"

//
//  Global data
//
HWND   hWndListBox;

static DWORD g_dwPos;

//
//  Structures
//
typedef struct
{
    HRESULT rval;
    LPTSTR  str;

} ERRLIST;

//
//  Function prototypes
//
extern void WINAPI SetHWND( HWND );

//
//  Error string table
//
static ERRLIST elErrors[] =
{
    { DD_OK                     ,TEXT("DD_OK") },
    { DDERR_ALREADYINITIALIZED  ,TEXT("DDERR_ALREADYINITIALIZED")},
    { DDERR_CANNOTATTACHSURFACE ,TEXT("DDERR_CANNOTATTACHSURFACE")},
    { DDERR_CANNOTDETACHSURFACE ,TEXT("DDERR_CANNOTDETACHSURFACE")},
    { DDERR_CURRENTLYNOTAVAIL   ,TEXT("DDERR_CURRENTLYNOTAVAIL")},
    { DDERR_EXCEPTION           ,TEXT("DDERR_EXCEPTION")},
    { DDERR_GENERIC             ,TEXT("DDERR_GENERIC")},
    { DDERR_HEIGHTALIGN         ,TEXT("DDERR_HEIGHTALIGN")},
    { DDERR_INCOMPATIBLEPRIMARY ,TEXT("DDERR_INCOMPATIBLEPRIMARY")},
    { DDERR_INVALIDCAPS         ,TEXT("DDERR_INVALIDCAPS")},
    { DDERR_INVALIDCLIPLIST     ,TEXT("DDERR_INVALIDCLIPLIST")},
    { DDERR_INVALIDMODE         ,TEXT("DDERR_INVALIDMODE")},
    { DDERR_INVALIDOBJECT       ,TEXT("DDERR_INVALIDOBJECT")},
    { DDERR_INVALIDPARAMS       ,TEXT("DDERR_INVALIDPARAMS")},
    { DDERR_INVALIDPIXELFORMAT  ,TEXT("DDERR_INVALIDPIXELFORMAT")},
    { DDERR_INVALIDRECT         ,TEXT("DDERR_INVALIDRECT")},
    { DDERR_LOCKEDSURFACES      ,TEXT("DDERR_LOCKEDSURFACES")},
    { DDERR_NO3D                ,TEXT("DDERR_NO3D")},
    { DDERR_NOALPHAHW           ,TEXT("DDERR_NOALPHAHW")},
    { DDERR_NOCLIPLIST          ,TEXT("DDERR_NOCLIPLIST")},
    { DDERR_NOCOLORCONVHW       ,TEXT("DDERR_NOCOLORCONVHW")},
    { DDERR_NOCOOPERATIVELEVELSET   ,TEXT("DDERR_NOCOOPERATIVELEVELSET")},
    { DDERR_NOCOLORKEY          ,TEXT("DDERR_NOCOLORKEY")},
    { DDERR_NOCOLORKEYHW        ,TEXT("DDERR_NOCOLORKEYHW")},
    { DDERR_NOEXCLUSIVEMODE     ,TEXT("DDERR_NOEXCLUSIVEMODE")},
    { DDERR_NOFLIPHW            ,TEXT("DDERR_NOFLIPHW")},
    { DDERR_NOGDI               ,TEXT("DDERR_NOGDI")},
    { DDERR_NOMIRRORHW          ,TEXT("DDERR_NOMIRRORHW")},
    { DDERR_NOTFOUND            ,TEXT("DDERR_NOTFOUND")},
    { DDERR_NOOVERLAYHW         ,TEXT("DDERR_NOOVERLAYHW")},
    { DDERR_NORASTEROPHW        ,TEXT("DDERR_NORASTEROPHW")},
    { DDERR_NOROTATIONHW        ,TEXT("DDERR_NOROTATIONHW")},
    { DDERR_NOSTRETCHHW         ,TEXT("DDERR_NOSTRETCHHW")},
    { DDERR_NOT4BITCOLOR        ,TEXT("DDERR_NOT4BITCOLOR")},
    { DDERR_NOT4BITCOLORINDEX   ,TEXT("DDERR_NOT4BITCOLORINDEX")},
    { DDERR_NOT8BITCOLOR        ,TEXT("DDERR_NOT8BITCOLOR")},
    { DDERR_NOTEXTUREHW         ,TEXT("DDERR_NOTEXTUREHW")},
    { DDERR_NOVSYNCHW           ,TEXT("DDERR_NOVSYNCHW")},
    { DDERR_NOZBUFFERHW         ,TEXT("DDERR_NOZBUFFERHW")},
    { DDERR_NOZOVERLAYHW        ,TEXT("DDERR_NOZOVERLAYHW")},
    { DDERR_OUTOFCAPS           ,TEXT("DDERR_OUTOFCAPS")},
    { DDERR_OUTOFMEMORY         ,TEXT("DDERR_OUTOFMEMORY")},
    { DDERR_OUTOFVIDEOMEMORY    ,TEXT("DDERR_OUTOFVIDEOMEMORY")},
    { DDERR_OVERLAYCANTCLIP     ,TEXT("DDERR_OVERLAYCANTCLIP")},
    { DDERR_OVERLAYCOLORKEYONLYONEACTIVE,TEXT("DDERR_OVERLAYCOLORKEYONLYONEACTIVE")},
    { DDERR_PALETTEBUSY         ,TEXT("DDERR_PALETTEBUSY")},
    { DDERR_COLORKEYNOTSET      ,TEXT("DDERR_COLORKEYNOTSET")},
    { DDERR_SURFACEALREADYATTACHED  ,TEXT("DDERR_SURFACEALREADYATTACHED")},
    { DDERR_SURFACEALREADYDEPENDENT ,TEXT("DDERR_SURFACEALREADYDEPENDENT")},
    { DDERR_SURFACEBUSY         ,TEXT("DDERR_SURFACEBUSY")},
    { DDERR_SURFACEISOBSCURED   ,TEXT("DDERR_SURFACEISOBSCURED")},
    { DDERR_SURFACELOST         ,TEXT("DDERR_SURFACELOST")},
    { DDERR_SURFACENOTATTACHED  ,TEXT("DDERR_SURFACENOTATTACHED")},
    { DDERR_TOOBIGHEIGHT        ,TEXT("DDERR_TOOBIGHEIGHT")},
    { DDERR_TOOBIGSIZE          ,TEXT("DDERR_TOOBIGSIZE")},
    { DDERR_TOOBIGWIDTH         ,TEXT("DDERR_TOOBIGWIDTH")},
    { DDERR_UNSUPPORTED         ,TEXT("DDERR_UNSUPPORTED")},
    { DDERR_UNSUPPORTEDFORMAT   ,TEXT("DDERR_UNSUPPORTEDFORMAT")},
    { DDERR_UNSUPPORTEDMASK     ,TEXT("DDERR_UNSUPPORTEDMASK")},
    { DDERR_VERTICALBLANKINPROGRESS ,TEXT("DDERR_VERTICALBLANKINPROGRESS")},
    { DDERR_WASSTILLDRAWING     ,TEXT("DDERR_WASSTILLDRAWING")},
    { DDERR_XALIGN              ,TEXT("DDERR_XALIGN")},
    { DDERR_INVALIDDIRECTDRAWGUID   ,TEXT("DDERR_INVALIDDIRECTDRAWGUID")},
    { DDERR_DIRECTDRAWALREADYCREATED    ,TEXT("DDERR_DIRECTDRAWALREADYCREATED")},
    { DDERR_NODIRECTDRAWHW      ,TEXT("DDERR_NODIRECTDRAWHW")},
    { DDERR_PRIMARYSURFACEALREADYEXISTS ,TEXT("DDERR_PRIMARYSURFACEALREADYEXISTS")},
    { DDERR_NOEMULATION         ,TEXT("DDERR_NOEMULATION")},
    { DDERR_REGIONTOOSMALL      ,TEXT("DDERR_REGIONTOOSMALL")},
    { DDERR_CLIPPERISUSINGHWND  ,TEXT("DDERR_CLIPERISUSINGHWND")},
    { DDERR_NOCLIPPERATTACHED   ,TEXT("DDERR_NOCLIPPERATTACHED")},
    { DDERR_NOHWND              ,TEXT("DDERR_NOHWND")},
    { DDERR_HWNDSUBCLASSED      ,TEXT("DDERR_HWNDSUBCLASSED")},
    { DDERR_HWNDALREADYSET      ,TEXT("DDERR_HWNDALREADYSET")},
    { DDERR_NOPALETTEATTACHED   ,TEXT("DDERR_NOPALETTEATTACHED")},
    { DDERR_NOPALETTEHW         ,TEXT("DDERR_NOPALETTEHW")},
    { DDERR_BLTFASTCANTCLIP     ,TEXT("DDERR_BLTFASTCANTCLIP")},
    { DDERR_NOBLTHW             ,TEXT("DDERR_NOBLTHW")},
    { DDERR_NODDROPSHW          ,TEXT("DDERR_NODDROPSHW")},
    { DDERR_OVERLAYNOTVISIBLE   ,TEXT("DDERR_OVERLAYNOTVISIBLE")},
    { DDERR_NOOVERLAYDEST       ,TEXT("DDERR_NOOVERLAYDEST")},
    { DDERR_INVALIDPOSITION     ,TEXT("DDERR_INVALIDPOSITION")},
    { DDERR_NOTAOVERLAYSURFACE      ,TEXT("DDERR_NOTAOVERLAYSURFACE")},
    { DDERR_EXCLUSIVEMODEALREADYSET ,TEXT("DDERR_EXCLUSIVEMODEALREADYSET")},
    { DDERR_NOTFLIPPABLE        ,TEXT("DDERR_NOTFLIPPABLE")},
    { DDERR_CANTDUPLICATE       ,TEXT("DDERR_CANTDUPLICATE")},
    { DDERR_NOTLOCKED           ,TEXT("DDERR_NOTLOCKED")},
    { DDERR_CANTCREATEDC        ,TEXT("DDERR_CANTCREATEDC")},
    { DDERR_NODC                ,TEXT("DDERR_NODC")},
    { DDERR_WRONGMODE           ,TEXT("DDERR_WRONGMODE")},
    { DDERR_IMPLICITLYCREATED   ,TEXT("DDERR_IMPLICITLYCREATED")},
};



HWND LBCreate( HWND hWnd, HINSTANCE hInst, DWORD pos, BOOL debug )
{
    hWndListBox = CreateWindow(
        TEXT("listbox"),// class
        NULL,           // caption
        WS_CHILD | WS_VSCROLL | LBS_NOINTEGRALHEIGHT | LBS_NOTIFY,// style
        0,              // x pos
        0,              // y pos
        0,              // width
        0,              // height
        hWnd,           // parent window
        (HMENU)ID_PRINTF_LISTBOX,  // list box identifier
        hInst,          // instance
        NULL            // parms
        );

    ShowWindow( hWndListBox, SW_SHOWNORMAL );
    UpdateWindow( hWndListBox );

    g_dwPos = pos;

    return hWndListBox;
}


void LBSize( DWORD width, DWORD height )
{
    MoveWindow( hWndListBox, 0, g_dwPos, width-1, height+g_dwPos-1, TRUE );
}


void LBClear( void )
{
    SendMessage( hWndListBox, LB_RESETCONTENT, 0, 0L );
}


void __cdecl LBPrintf( LPTSTR fmt, ... )
{
    TCHAR    buff[512];
    UINT    sel;

    //wvsprintf( buff, fmt, (LPVOID)(&fmt+1) );
	wvsprintf( buff, fmt, (char *)(&fmt+1) );
    SendMessage( hWndListBox, LB_ADDSTRING, 0, (LONG) (LPTSTR) buff );

    sel = (UINT) SendMessage( hWndListBox, LB_GETCOUNT, 0, 0L );
    if( sel != LB_ERR )
    {
        SendMessage( hWndListBox, LB_SETCURSEL, sel-1, 0L );
    }
}


static LPTSTR getErrorString( HRESULT ddrval )
{
    int i;

    for( i=0;i<sizeof( elErrors )/sizeof( elErrors[0] );i++ )
    {
        if( ddrval == elErrors[i].rval )
        {
            return elErrors[i].str;
        }
    }

    return TEXT("Unknown Error Code");
}


void __cdecl LBPrintfRC( HRESULT ddrval, LPTSTR fmt, ... )
{
    TCHAR buff[512];

    //wvsprintf( buff, fmt, (LPVOID)(&fmt+1) );
	wvsprintf( buff, fmt, (char *)(&fmt+1) );

    LBPrintf( TEXT("%s, rc=%ld (0x%08lx:%s)"), buff, LOWORD( ddrval ),
              ddrval, getErrorString( ddrval ) );
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -