boolean testhtml1_InitAppData(testhtml1* pMe)
{
IFileMgr *pMgr;
IFile *pFile;
FileInfo Info;
char *fdata;
AEERect rc;
// 初期化
pMe->pHtml = NULL;
pMe->pID = NULL;
pMe->pkind = NULL;
//==========================================//
// //
// 以下、自動生成されたところ //
// //
//==========================================//
// Get the device information for this handset.
// Reference all the data by looking at the pMe->DeviceInfo structure
// Check the API reference guide for all the handy device info you can get
pMe->DeviceInfo.wStructSize = sizeof(pMe->DeviceInfo);
ISHELL_GetDeviceInfo(pMe->a.m_pIShell,&pMe->DeviceInfo);
// The display and shell interfaces are always created by
// default, so we'll asign them so that you can access
// them via the standard "pMe->" without the "a."
pMe->pIDisplay = pMe->a.m_pIDisplay;
pMe->pIShell = pMe->a.m_pIShell;
// Insert your code here for initializing or allocating resources...
//==========================================//
// //
// ここから、独自 //
// //
//==========================================//
//==========================================//
// 表示するHTMLファイルの取得 //
//==========================================//
if (ISHELL_CreateInstance(pMe->pIShell, AEECLSID_FILEMGR, (void**)(&pMgr)) != SUCCESS )
{
return FALSE;
}
// ファイルの大きさを取得して、ファイルを一気に読み込む
if (IFILEMGR_GetInfo(pMgr,"testhtml1.htm",&Info) != SUCCESS)
{
IFILEMGR_Release(pMgr);
return FALSE;
}
if ( (fdata = (char *)MALLOC(Info.dwSize+1)) == NULL )
{
IFILEMGR_Release(pMgr);
return FALSE;
}
if ( (pFile = IFILEMGR_OpenFile(pMgr,"testhtml1.htm",_OFM_READ)) == NULL )
{
IFILEMGR_Release(pMgr);
FREEIF(fdata);
return FALSE;
}
if ( IFILE_Read(pFile,fdata,Info.dwSize) == 0 )
{
IFILE_Release(pFile);
IFILEMGR_Release(pMgr);
FREEIF(fdata);
return FALSE;
}
fdata[fdata,Info.dwSize] = 0;
//データ取得したので、ファイルとマネージャーは解放
IFILE_Release(pFile);
IFILEMGR_Release(pMgr);
//==========================================//
// カーソルの領域と種別領域の設定 //
//==========================================//
// 本来はHTMLから解釈するか、
// 別ファイルからとってくるほうがいいが、
// 今回は直接設定してしまうことにする。
pMe->itemsu = TESTHTML1_ITEMSU;
// 種類の領域確保と設定
pMe->pkind = (int *)MALLOC(TESTHTML1_ITEMSU * sizeof(int));
if ( pMe->pkind == NULL )
{
FREEIF(fdata);
return FALSE;
}
pMe->pkind[0] = ITEMKIND_INPUT_SUBMIT;
pMe->pkind[1] = ITEMKIND_INPUT_TEXT;
pMe->pkind[2] = ITEMKIND_INPUT_SUBMIT;
pMe->pkind[3] = ITEMKIND_INPUT_TEXT;
pMe->pkind[4] = ITEMKIND_INPUT_TEXT;
pMe->pkind[5] = ITEMKIND_INPUT_SUBMIT;
// IDをいれておく
pMe->pID = (int *)MALLOC(TESTHTML1_ITEMSU * sizeof(int));
if ( pMe->pID == NULL )
{
FREEIF(fdata);
return FALSE;
}
//==========================================//
// HTMLViewerで表示 //
//==========================================//
// 読み込んだfdataをHTMLViewerに設定する
if( ISHELL_CreateInstance( pMe->pIShell, AEECLSID_HTML, (void**)(&pMe->pHtml))
!= SUCCESS )
{
FREEIF(fdata);
return FALSE;
}
// HTMLVieweの位置設定
// 注意;これをしないと、表示しない
rc.x = 0;
rc.y = 0;
rc.dx = pMe->DeviceInfo.cxScreen;
rc.dy = pMe->DeviceInfo.cyScreen;
IHTMLVIEWER_SetRect(pMe->pHtml, &rc);
// その他設定
IHTMLVIEWER_SetNotifyFn(pMe->pHtml, (PFNHVIEWNOTIFY)testhtml1_CallBack, pMe);
IHTMLVIEWER_SetProperties( pMe->pHtml, HVP_LOADALLIMAGES | HVP_SCROLLBAR);
IHTMLVIEWER_SetSBWidth( pMe->pHtml, 8 );
// データセット後読み込み領域フリー
testhtml1_SetHtmlAndID( pMe->pHtml, fdata,pMe->pID,pMe->pkind,pMe->itemsu );
FREEIF(fdata);
// if there have been no failures up to this point then return success
return TRUE;
}
|