📄 rilsimtkit.h
字号:
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// Use of this sample source code is subject to the terms of the Microsoft
// license agreement under which you licensed this sample source code. If
// you did not accept the terms of the license agreement, you are not
// authorized to use this sample source code. For the terms of the license,
// please see the license agreement between you and Microsoft or, if applicable,
// see the LICENSE.RTF on your install media or the root of your tools installation.
// THE SAMPLE SOURCE CODE IS PROVIDED "AS IS", WITH NO WARRANTIES.
//
/*++
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.
Module Name:
RilSimTkit.h
Abstract:
Notes:
--*/
#pragma once
#include <simtkit.h>
// Command Qualifier settings
#define SIMTKIT_TEXTPARSE_HELPINFO 0x80
#define SIMTKIT_TEXTPARSE_PRIORITY 0x01
#define SIMTKIT_TEXTPARSE_CLEAR 0x80
#define SIMTKIT_TEXTPARSE_INPUT_KEYPADDIGITS 0x00
#define SIMTKIT_TEXTPARSE_INPUT_SMDEFAULTALPHABET 0x01
#define SIMTKIT_TEXTPARSE_INPUT_UCS2 0x03
#define SIMTKIT_TEXTPARSE_NOECHO 0x04
#define SIMTKIT_TEXTPARSE_PACKEDRESPONSE 0x08
#define SIMTKIT_TEXTPARSE_YESNO 0x04
#define SIMTKIT_TEXTPARSE_RESPONSE_OK 0
#define SIMTKIT_TEXTPARSE_RESPONSE_TERMINATE 1
#define SIMTKIT_TEXTPARSE_RESPONSE_HELP 2
#define SIMTKIT_TEXTPARSE_RESPONSE_BACK 3
#define SIMTKIT_TEXTPARSE_RESPONSE_NORESPONSE 4
#define SIMTKIT_TEXTPARSE_MAINMENU_HELP 1
#define SIMTKIT_TEXTPARSE_SETUPMENU_USER 1
#define SIMTKIT_TEXTPARSE_SETUPMENU_PROBLEM 3
#define SIMTKIT_TEXTPARSE_DISPLAYTEXT_CLEAR 2
#define SIMTKIT_TEXTPARSE_DISPLAYTEXT_BUSY 3
#define SIMTKIT_TEXTPARSE_DISPLAYTEXT_BACK 4
#define SIMTKIT_TEXTPARSE_DISPLAYTEXT_NORESPONSE 5
#define SIMTKIT_TEXTPARSE_PLAYTONE_NOTPLAYED 2
#define SIMTKIT_TEXTPARSE_PLAYTONE_NOTSUPPORTED 3
#define SIMTKIT_TEXTPARSE_IDLETEXT_PROBLEM 1
#define SIMTKIT_TEXTPARSE_SETUPCALL_REJECT 1
#define SIMTKIT_TEXTPARSE_EVENTLIST_ERROR 1
#define SIMTKIT_TEXTPARSE_LAUNCHBROWSER_USERREJECTED 3
#define SIMTKIT_TEXTPARSE_LAUNCHBROWSER_NOCAUSE 4
#define SIMTKIT_TEXTPARSE_LAUNCHBROWSER_BROWSERUNAVAIL 6
#define SIMTKIT_TEXTPARSE_LAUNCHBROWSER_MOBILEINCAPABLE 9
#define SIMTKIT_TEXTPARSE_OPENCHANNEL_NOTACCEPTED 0
#define SIMTKIT_TEXTPARSE_OPENCHANNEL_REQUIRED 1
#define SIMTKIT_TEXTPARSE_SENDDTMF_NOTACCEPTED 0
#define SIMTKIT_TEXTPARSE_SENDDTMF_REQUIRED 1
#define SIMTKIT_TEXTPARSE_GETINKEY_DIGITS 0
#define SIMTKIT_TEXTPARSE_GETINKEY_PACKED 1
#define SIMTKIT_TEXTPARSE_GETINKEY_UCS 2
#define SIMTKIT_TEXTPARSE_GETINKEY_YESNO 3
#define SIMTKIT_TEXTPARSE_GETINPUT_DIGIT_UNPACKED 0
#define SIMTKIT_TEXTPARSE_GETINPUT_DIGIT_PACKED 1
#define SIMTKIT_TEXTPARSE_GETINPUT_DIGIT_UCS2 2
#define SIMTKIT_TEXTPARSE_GETINPUT_ALPHA_UNPACKED 3
#define SIMTKIT_TEXTPARSE_GETINPUT_ALPHA_PACKED 4
#define SIMTKIT_TEXTPARSE_GETINPUT_ALPHA_UCS2 5
#define SIMTKIT_TEXTPARSE_SIMREFRESH_SIMINIT_FULL 0
#define SIMTKIT_TEXTPARSE_SIMREFRESH_FILE 1
#define SIMTKIT_TEXTPARSE_SIMREFRESH_SIMINIT_FILE 2
#define SIMTKIT_TEXTPARSE_SIMREFRESH_SIMINIT 3
#define SIMTKIT_TEXTPARSE_SIMREFRESH_RESET 4
#define SIMTKIT_TEXTPARSE_PARSE_LEADINGZERO true
#define SIMTKIT_TEXTPARSE_PARSE_NOLEADINGZERO false
// Leading encoding byte for EF ADN encoded text.
#define SIMTKIT_TEXTPARSE_ALPHAID_UCS2 (0x80)
#define SIMTKIT_TEXTPARSE_ALPHAID_MIXED_8BIT (0x81)
#define SIMTKIT_TEXTPARSE_ALPHAID_MIXED_16BIT (0x82)
#define SIMTKIT_TEXT_ENCODING_ALPHAID (0x8000)
// TLV tag values
#define COMMANDIDTAG 0x01
#define DEVICEIDTAG 0x02
#define RESULTTAG 0x03
#define DURATIONTAG 0x04
#define ALPHAIDTAG 0x05
#define ADDRESSTAG 0x06
#define CAPABILITYTAG 0x07
#define SUBADDRTAG 0x08
#define SSSTRINGTAG 0x09
#define USSDSTRINGTAG 0x0A
#define TPDUTAG 0x0B
// 0x0C is Cell Broadcast page tag
#define TEXTTAG 0x0D
#define TONETAG 0x0E
#define MENUITEMTAG 0x0F
#define ITEMIDTAG 0x10
#define RESPONSETAG 0x11
#define FILELISTTAG 0x12
#define LOCINFOTAG 0x13
#define IMEITAG 0x14
#define HELPTAG 0x15
#define NMRTAG 0x16
#define DEFTEXTTAG 0x17
#define NEXTACTIONTAG 0x18
#define EVENTLISTTAG 0x19
#define ICONTAG 0x1E
#define ICONLISTTAG 0x1F
#define ATCMDTAG 0x28
#define IMMEDIATETAG 0x2B
#define DTMFTAG 0x2C
#define LANGUAGETAG 0x2D
#define BROWSERIDTAG 0x30
#define URLTAG 0x31
#define BEARERTAG 0x32
#define PROVISIONFILETAG 0x33
#define BEARERDESCRIPTTAG 0x35
#define CHANNELDATATAG 0x36
#define CHANNELDATALENTAG 0x37
#define BUFFERSIZETAG 0x39
#define TRANSPORTLVLTAG 0x3C
#define OTHERADDRTAG 0x3E
#define NETACCESSNAMETAG 0x47
#define BCCHTAG 0x1D
#define MENUSELECTTAG 0xD3
#define EVENTDOWNLOADTAG 0xD6
#define OPTIONALTAG 0x80000000
#define COMMANDLENGTH 5
#define MAX_BYTE_RSP 255
#define MAX_TEXT_RSP 512
#define SIMTKIT_TEXTPARSE_EMPTY_STRING L"\0"
#define SIMTKIT_TEXTPARSE_YES L"01"
#define SIMTKIT_TEXTPARSE_NO L"00"
#define SIMTKIT_INVALID_VALUE (0xFFFFFFFF)
#define SIMTK_OPENCHANNEL_CS ADDRESSTAG
#define SIMTK_OPENCHANNEL_GPRS BEARERDESCRIPTTAG
// Default Terminal Profile constants
#define MAX_TERMINAL_PROFILE (32)
#define DEF_TERMINAL_PROFILE_SIZE (9)
static const TCHAR* gsc_szTerminalProfileRegKey = TEXT("TerminalProfile");
#define ROUNDTODWORD(p) (DWORD) (4 * (((DWORD) p + 3) / 4))
BOOL ParseBytes(const BYTE *pbData, LPBYTE& rpbData, size_t& rcbData, LPBYTE& rpbPointer);
BOOL ParseEncodedText(const LPBYTE pbData, DWORD dwEncoding, LPWSTR& rwszOut, size_t& rcbOut, LPBYTE& rpbPointer);
BOOL CreateEncodedText(DWORD dwEncoding, const WCHAR *wszIn, LPSTR& rszOut, UINT& ruiOutSize);
BOOL ConvertAlphaIDTextToUnicode(const LPCSTR szInput, const UINT uiInputLength, const LPWSTR wszOutput, const UINT uiOutputLength, UINT& ruiCharactersUsed);
class CRilSimToolkitCommand
{
public:
// Creation
CRilSimToolkitCommand();
~CRilSimToolkitCommand();
// Parsing commands
DWORD ParseCommand(LPCSTR szData, DWORD dwDataSize, RILSIMTOOLKITCMD **ppCommand, DWORD *pdwCommandSize);
private:
// Common reading functions
HRESULT ReadCmdLength(DWORD *pdwLength);
HRESULT ReadCommonTextString(TCHAR **ppwszText, DWORD *pdwLen);
HRESULT ReadDialNumberString(TCHAR **ppwsz, DWORD *pdwLen);
HRESULT ReadEFADNText(TCHAR **ppwszText, DWORD dwLength, DWORD *pdwUsedLen);
HRESULT ReadCommonEFADNText(TCHAR **ppwszText, DWORD *pdwLen);
HRESULT ReadCommonByte(DWORD *pdwData);
HRESULT ReadCommonByteList(BYTE **ppbData, DWORD *pdwLen);
HRESULT ReadCommonByteAndByteList(DWORD* pdwByte, BYTE **ppbData, DWORD *pdwLen);
HRESULT ReadCommonIconIdentifier(LPDWORD pdwIconIdentifier, LPDWORD pdwIconQualifier);
// Text Format Parse command Functions
HRESULT ParseTextFormatCommand(DWORD* pdwNotifyCode, BYTE* pbCmdQualifier, DWORD* pdwRetVal);
HRESULT ParseSetupMenu(DWORD dwCommandID, BYTE* pbCmdQualifier);
HRESULT ParseMenuItem(LPBYTE& rpbParse);
HRESULT ParseDisplayText(BYTE* pbCmdQualifier);
HRESULT ParseGetInKey(BYTE* pbCmdQualifier);
HRESULT ParseGetInput(BYTE* pbCmdQualifier);
HRESULT ParsePlayTone(void);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -