wince +sl 群

siverlight for windows embeddem 当中方便查看错误代码的类

时间:20:12 2010-11-16

环境:
开发环境:VS2008 +XAML2CPP.EXE + SWE 2 + BLEND 2
运行环境:WINCE 6.0 R3
硬件加速: DirectX

联系:
网站:     http://www.pvontek.com
E-MAIL:    pengxinglove@gmail.com

 

背景

       在SWE当中,在对于XAML 文件进行解析的过程,经常会出现一个错误了,其以错误代码返回,错误代码其是一些数字。要想知道这些数字的含义,

       我们要去XamlRuntime.h 文件当中去查找,且查找过程麻烦。

       在一次看国外论坛的时候,看到了此类,感觉简单又方便使用。

 

示例:

  if (FAILED(retcode=app->CreateHostFromXaml(&xamlsrc, &wp, &vhost)))

{
            RETAILMSG( TRUE,

(L"%s\n",SWEErrorCode::GetSilverLightErrorString( retcode)));
           return retcode;
}

 

源代码

#pragma once

class SWEErrorCode
{
public:

static TCHAR*    GetSilverLightErrorString(
HRESULT retcode)
{
    static TCHAR    pszUnknownMessage[50];
    static    TCHAR    pszErrorStrings[][50] =
    {
        {TEXT("XR_E_ABSTRACT_BASE_CLASS")},//0
        {TEXT("XR_E_COLLECTION_DUPLICATE_NAME")},//1
        {TEXT("XR_E_COLLECTION_ELEMENT_ALREADY_ASSOCIATED")},//2
        {TEXT("XR_E_DUPLICATE_REGISTRATION")},//3
        {TEXT("XR_E_ELEMENT_NOT_CREATED")},//4
        {TEXT("XR_E_ELEMENT_NOT_FOUND")},//5
        {TEXT("XR_E_INVALID_OBJECT")},//6
        {TEXT("XR_E_INVALID_PROPERTY")},//7
        {TEXT("XR_E_INVALID_ROOT_FOR_CREATING_HOST")},//8
        {TEXT("XR_E_INVALID_STATE")},//9
        {TEXT("XR_E_INVALID_THREAD_ACCESS")},//10
        {TEXT("XR_E_NOT_INITIALIZED")},//11
        {TEXT("XR_E_PARSER_ATTRIBUTE_OUT_OF_RANGE")},//12
        {TEXT("XR_E_PARSER_ATTRIBUTE_READONLY")},//13
        {TEXT("XR_E_PARSER_FAILED_RESOURCE_FIND")},//14
        {TEXT("XR_E_PARSER_INVALID_ATTRIBUTE")},//15
        {TEXT("XR_E_PARSER_INVALID_ATTRIBUTE_VALUE")},//16
        {TEXT("XR_E_PARSER_INVALID_CONTENT")},//17
        {TEXT("XR_E_PARSER_INVALID_PROPERTY")},//18
        {TEXT("XR_E_PARSER_MISSING_DEFAULT_NAMESPACE")},//19
        {TEXT("XR_E_PARSER_MULTIPLE_PROPERTY_ELEMENT_VALUES")},//20
        {TEXT("XR_E_PARSER_RESOURCE_KEY_AND_NAME_SET")},//21
        {TEXT("XR_E_PARSER_TEXT_CONTENT_UNSUPPORTED")},//22
        {TEXT("XR_E_PARSER_UNKNOWN_ATTRIBUTE")},//23
        {TEXT("XR_E_PARSER_UNKNOWN_ELEMENT")},//24
        {TEXT("XR_E_PARSER_UNKNOWN_NAMESPACE")},//25
        {TEXT("XR_E_STORYBOARD_BEGIN_ANIMATION_COMPOSITION")},//26
        {TEXT("XR_E_STORYBOARD_BEGIN_INCOMPATIBLE_TYPE")},//27
        {TEXT("XR_E_STORYBOARD_BEGIN_INVALID_KEYTIME")},//28
        {TEXT("XR_E_STORYBOARD_BEGIN_INVALID_PROPERTY")},//29
        {TEXT("XR_E_STORYBOARD_BEGIN_INVALID_TARGET")},//30
        {TEXT("XR_E_STORYBOARD_BEGIN_NO_TARGET")},//31
        {TEXT("XR_E_STORYBOARD_MODIFY_ACTIVE_ANIMATION")},//32
        {TEXT("XR_E_STORYBOARD_MUST_BE_ROOT ")},//33
        {TEXT("XR_E_STORYBOARD_SKIPTOFILL_NO_DURATION")}//34
    };

    switch(retcode)
    {
        case XR_E_ABSTRACT_BASE_CLASS:
            return pszErrorStrings[0];
        case XR_E_COLLECTION_DUPLICATE_NAME:
            return pszErrorStrings[1];
        case XR_E_COLLECTION_ELEMENT_ALREADY_ASSOCIATED:
            return pszErrorStrings[2];
        case XR_E_DUPLICATE_REGISTRATION:
            return pszErrorStrings[3];
        case XR_E_ELEMENT_NOT_CREATED:
            return pszErrorStrings[4];
        case XR_E_ELEMENT_NOT_FOUND:
            return pszErrorStrings[5];
        case XR_E_INVALID_OBJECT:
            return pszErrorStrings[6];
        case XR_E_INVALID_PROPERTY:
            return pszErrorStrings[7];
        case XR_E_INVALID_ROOT_FOR_CREATING_HOST:
            return pszErrorStrings[8];
        case XR_E_INVALID_STATE:
            return pszErrorStrings[9];
        case XR_E_INVALID_THREAD_ACCESS:
            return pszErrorStrings[10];
        case XR_E_NOT_INITIALIZED:
            return pszErrorStrings[11];
        case XR_E_PARSER_ATTRIBUTE_OUT_OF_RANGE:
            return pszErrorStrings[12];
        case XR_E_PARSER_ATTRIBUTE_READONLY:
            return pszErrorStrings[13];
        case XR_E_PARSER_FAILED_RESOURCE_FIND:
            return pszErrorStrings[14];
        case XR_E_PARSER_INVALID_ATTRIBUTE:
            return pszErrorStrings[15];
        case XR_E_PARSER_INVALID_ATTRIBUTE_VALUE:
            return pszErrorStrings[16];
        case XR_E_PARSER_INVALID_CONTENT:
            return pszErrorStrings[17];
        case XR_E_PARSER_INVALID_PROPERTY:
            return pszErrorStrings[18];
        case XR_E_PARSER_MISSING_DEFAULT_NAMESPACE:
            return pszErrorStrings[19];
        case XR_E_PARSER_MULTIPLE_PROPERTY_ELEMENT_VALUES:
            return pszErrorStrings[20];
        case XR_E_PARSER_RESOURCE_KEY_AND_NAME_SET:
            return pszErrorStrings[21];
        case XR_E_PARSER_TEXT_CONTENT_UNSUPPORTED:
            return pszErrorStrings[22];
        case XR_E_PARSER_UNKNOWN_ATTRIBUTE:
            return pszErrorStrings[23];
        case XR_E_PARSER_UNKNOWN_ELEMENT:
            return pszErrorStrings[24];
        case XR_E_PARSER_UNKNOWN_NAMESPACE:
            return pszErrorStrings[25];
        case XR_E_STORYBOARD_BEGIN_ANIMATION_COMPOSITION:
            return pszErrorStrings[26];
        case XR_E_STORYBOARD_BEGIN_INCOMPATIBLE_TYPE:
            return pszErrorStrings[27];
        case XR_E_STORYBOARD_BEGIN_INVALID_KEYTIME:
            return pszErrorStrings[28];
        case XR_E_STORYBOARD_BEGIN_INVALID_PROPERTY:
            return pszErrorStrings[29];
        case XR_E_STORYBOARD_BEGIN_INVALID_TARGET:
            return pszErrorStrings[30];
        case XR_E_STORYBOARD_BEGIN_NO_TARGET:
            return pszErrorStrings[31];
        case XR_E_STORYBOARD_MODIFY_ACTIVE_ANIMATION:
            return pszErrorStrings[32];
        case XR_E_STORYBOARD_MUST_BE_ROOT:
            return pszErrorStrings[33];
        case XR_E_STORYBOARD_SKIPTOFILL_NO_DURATION:
            return pszErrorStrings[34];
        default:
            _stprintf(pszUnknownMessage,TEXT("UNKNOWN_ERROR (0x%x)"), retcode);
            return pszUnknownMessage;
    }
}
};

posted @ 2010-11-16 20:35  pengxinglove  阅读(403)  评论(0编辑  收藏  举报
wince +sl 群