📄 lbprintf.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 + -