📄 esndlg.cpp
字号:
// EsnDlg.cpp : implementation file
//
#include "stdafx.h"
#include "Esn.h"
#include "EsnDlg.h"
//获得ESN号需要的头文件和库文件=========================
#ifdef ARM
#include "locinfo.h"
#pragma comment( lib, "OSinterfacedll.lib" )
#endif
//======================================================
//获得CCID号============================================
#include "mtapi.h"
#include "mtapi_i.c"
typedef struct CC_GET_NETNAME_ID_INFO
{
UINT8 netName[20];
UINT8 netID[10];
UINT8 status; //1 有效 -1 无效
}CC_NETINFO;
typedef enum
{
eUNKNOWN_NET= 0,
eGSM_NET = 1,
eCDMA_NET = 2,
ePHS_NET = 3,
eNET_MAXNUM
}enumNetType;//网络类型
//=====================================================
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CEsnDlg dialog
CEsnDlg::CEsnDlg(CWnd* pParent /*=NULL*/)
: CDialog(CEsnDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CEsnDlg)
m_Esn = _T("");
m_Ccid = _T("");
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CEsnDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CEsnDlg)
DDX_Text(pDX, IDC_STATICESN, m_Esn);
DDX_Text(pDX, IDC_STATICCCID, m_Ccid);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CEsnDlg, CDialog)
//{{AFX_MSG_MAP(CEsnDlg)
ON_BN_CLICKED(IDC_BUT_ESN, OnButEsn)
ON_BN_CLICKED(IDC_BUT_CCID, OnButCcid)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CEsnDlg message handlers
BOOL CEsnDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
CenterWindow(GetDesktopWindow());
SetWindowPos(this,0,0,240,295,SWP_SHOWWINDOW);
this->SetForegroundWindow();
this->BringWindowToTop();
// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control
}
void CEsnDlg::OnButEsn()
{
char ESN[40];
memset(ESN,0,40);
#ifdef ARM
GetESN((char*)ESN);
#else
strncpy(ESN,"在手机下才可以获得ESN号!",sizeof("在手机下才可以获得ESN号!"));
#endif
m_Esn = ESN;
UpdateData(false);
}
void CEsnDlg::OnButCcid()
{
IMtapi *pmtapi = NULL;
IMdmService *pmdm = NULL;
long nResult =1;
long nNetType =3;
#ifdef ARM
HRESULT hr;
hr = CoGetClassObject(CLSID_TMtapi, CLSCTX_LOCAL_SERVER,NULL, IID_IMtapi,(void**)&pmtapi);
if (!SUCCEEDED(hr))
{
MessageBox(_T("CoGetClassObject Fail"), __TEXT("mtapiclient"), MB_OK);
return ;
}
hr = pmtapi->GetMdmServiceObj(&pmdm);
if (!SUCCEEDED(hr))
MessageBox(_T("GetMdmServiceObj Fail"), __TEXT("mtapiclient"), MB_OK);
TCHAR szBuf[128];
memset(szBuf,0, 128);
//pmdm->GetCurNetType(&nNetType);
pmdm->GetCCID(eCDMA_NET,szBuf,128,&nResult);
pmdm->Release();
pmtapi->Release();
if(nResult == E_CC_NOERROR)
{
m_Ccid = szBuf;
}else
{
m_Ccid = "获得CCID号错误!";
}
m_Ccid = szBuf;
UpdateData(false);
#else
m_Ccid = "在手机下才可以获得CCID号!";
UpdateData(false);
return ;
#endif
return ;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -