주요 모듈 설명에서는 MiPlatform을 구성하고 있는 MiPlatform Browser와 MiUpdater에 대한 세부적인 설명을 합니다. "5.1 MiPlatform Browser란"에서는 MiPlatform Browser가 포함하는 범위와 구성에 대해 설명합니다. "5.2 MiUpdater"에서는 MiUpdater의 범위와 구성 및 사용 방법에 대해 설명합니다.
MiPlatform Browser
MiPlatform Browser란
MiPlatform Browser는 MiPlatform ActiveX를 포함하고 있는 전용 브라우저입니다.
MiPlatform Browser는 UNICODE 버전과 ANSI버전이 있습니다.
기능상 UNICODE 버전과 ANSI버전은 동등 합니다.
다만, ANSI버전에서는 2개 국어이상을 1개의 Application에서 사용할 경우 데이터 손실이 발생할 수 있습니다. UNICODE버전에서는 다국어 문제가 없으나, Windows XP SP3이상에서만 동작합니다.
MiPlatform Browser의 구성
MiPlatform은 EXE의 실행 파일 형태로 제작된 전용 브라우저와 다른 Application에 포함되어 동작하도록제작된 ActiveX형태 및 플러그인 형태를 지원합니다. MiPlatform 전용 브라우저 형태는 사용자용인 MiPlatform과 개발자용인 MiSimulator로 구분됩니다. MiPlatform의 ActiveX형태는 콘트롤 형태로 사용하기 위한 MiPlatformX와 Application형태로 사용하기 위한 MiPlatformMX ( MDI ActiveX)형태가 제공됩니다. MiPlatform 전용 브라우저는 MiPlatformX를 사용하도록 제작되어 있으며, MiPlatformMX는 MiPlatform 브라우저를 ActiveX형태로 동작하도록 제작된 모듈 입니다.
MiPlatform과 MiSimulator의 차이점
MiPlatform | MiSimulator | |
---|---|---|
사용용도 | 사용자 | 업무 개발자 (PID에서 Quick View 및 Quick Lanch, Debuging 사용 시 실행됩니다) |
제공툴 | 배포 시 미제공 | PID, BSB |
메뉴 | StartXML에서 제공되는 메뉴 | StartXML에서 제공되는 메뉴 추가 Popup Menu 제공 (Source View - 현재 보여지는 화면 Source 보기 Reload - 다시 읽기 Always On Top -TopWindow로 보이기 Disabled waring message - waring message를 사용할지 여부를 설정) |
Cache | StartXML에 명시되어 있는 Cache Level | 작업 중 변경 사항이 적용되야 하므로 Cache Level은 Dynamic Level로 자동 변경됩니다. |
MiPlatform Browser Argument
MiUpdater를 통해서 MiPlatform Browser를 실행하지 않고 MiPlatform Browser를 직접 실행할 경우에 필요한 정보입니다.
(입력 Argument 설명) | 입력값 | 비고 | |
---|---|---|---|
Option | 설명 | ||
프로그램명 | 설치경로\ MiPlatform330.exe (바로가기 만들기로 생성) | ||
-K | Key | Demo, Tutorial,… | Registry의 Key |
-X | StartXML | StartXML 경로 | 설정 정보를 포함하고 있는 StartXML (값이 없는 경우, Key 값으로 레지스트리에서 StartXML을 참고) |
-I | InitURL | Prefix::경로 | 초기 화면 이름 (Prefix::경로) |
-S | ScriptPath | Script 경로 | Local에 있는 Script 파일을 사용하는 경우 Script 파일이 있는 경로 |
-C | ComponentPath | Component 경로 | MiPlatform이 실행할 때 사용하는 Component가 있는 경로 (값이 없는 경우, Key 값으로 레지스트리에서 ComponentPath를 참고. 만약, 이 값도 없는 경우에는 Settings의 ComponentPath 값 참고) |
-G | BKImage | 이미지 경로 | MiPlatform용 Splash화면에 표시될 이미지 파일의 경로 |
-SK | SiteKey | Site별 Key | 업체별 또는 사이트별 Key |
-LF | Left Position | 숫자 | Browser가 실행될 때 Left 위치 |
-TP | Top Position | 숫자 | Browser가 실행될 때 Top 위치 |
-WD | Width | 숫자, max | Browser가 실행될 때 넓이값 |
-HT | Height | 숫자, max | Browser가 실행될 때 높이값 |
-SC | Scroll | True/False | Browser가 MDI로 실행될 때 IConManager영역에 Scroll을 제공할지 여부 |
MiPlatformX
MiPlatformX는 MiPlatform을 실행하는 기본 ActiveX입니다.
MiPlatformX 단독으로 서비스할 수 있으며, MiPlatformP ActiveX와 함께 사용해서 MDI를 구현할 수 있습니다. MiPlatformX에는 Virtual Engine(Cache Manager, Protocol Manager, Component Manager, Dataset Manager, XML/Script Manager)이 포함되어 있습니다.
Cache Manager는 Application에서 필요로 하는 Presentation Logic 및 기타 정보를 사전에 다운로드하여 통신량을 낮춥니다. (Business Logic은 사전에 다운로드 받지 않습니다.)
Protocol Manager는 Virtual Engine에서 외부로 연결되는 모든 Protocol(HTTP, File, Lite DB 등)을 효율적으로 관리합니다.
Component Manager는 데이터와 컴포넌트간의 실시간 연동으로 별도의 코딩없이 Define & Run 할 수 있는 Invisible DataSet Manager를 관리합니다. 또한 User Interface를 구현하는 Visual Component들을 생성합니다. 각 Script의 속성을 설정, 변경 또는 제거하는 모든 화면 제어 기능을 관리합니다.
Dataset Manager는 Component Manager와 연동하여 사용되며, Cache Manager로부터 data를 받아 insert/update/delete기능과 filter/sort 등의 dataset component를 관리합니다.
XML/Script Manager는 Java Script 및 XML을 parsing한 다음 Script를 실행합니다. 또한 컴포넌트에서 발생된 Event의스크립트 실행에 관련된 처리를 제어합니다.
MiPlatformX는 UNICODE 버전과 ANSI 버전이 있으며 기능은 서로 같습니다. 두 가지 버전을 동시에 설치할 수도 있습니다.
MiPlatformX의 CLSID
버전 | CLSID |
---|---|
UNICODE | {EC3500BB-63AF-45E4-9CBE-C126C77A28B5} |
ANSI | {6CCC09A1-3835-427E-BAEC-A92D216A1557} |
MiPlatformX의 Property/Method/Event
Property
Property | 입력값/형태 | 설명 | SET/GET 여부 | 필수 여부 |
---|---|---|---|---|
Key | String | Caching과 Registry에서 사용되는 고유한 식별자(Unique Identify String) | S/G | 0 |
StartXML | String | MiPlatformX 실행에 필요한 Configuration 정보가 저장된 XML 문서 경로(Local 또는 http) | S/G | O |
InitURL | String | 최초에 화면에 나타나는 XML 경로 (StartXML 문서에 설정된 InitURL은 무시됩니다.) Prefix::경로 | S/G | X |
ScriptPath | String | Local에 있는 Script 파일을 사용하는 경우 Script 파일 경로 | S/G | X |
HostHWnd | Long | MiPlatformX를 Hosting하고 있는 Window Handle | S/G | X |
ComponentPath | String | MiPlatform에서 사용되는 Component DLL이 위치한 Local 경로 | S/G | X |
Redraw | Bool | 화면 painting | S/G | X |
ConnectRetry | Int | 통신 시 Connect Retry 횟수 | S/G | X |
WaitTimeInterval | Int | 통신 시 TimeOut | S/G | X |
RealMode | Bool | 사용자 버전과 개발자 버전 구별 여부 | S/G | X |
TraceMode | Bool | trace 실행 여부 | S/G | X |
RetValue | Variant | Dialog Form close Api 사용 시 return value Array로 사용할 수 있습니다. | G | X |
SessionURL | String | Session 사용 시 화면 경로 Prefix::경로 | S/G | X |
AutoSize | Bool | 화면 사이즈 자동 조절 여부(FormXML에 설정된 사이즈) | S/G | X |
ID | String | 스크립트 사용 시 화면을 구별하는 ID | S/G | 삭제 |
SessionWindow | Bool | SessionURL의 통과 확인 여부 | S/G | X |
EnableScroll | Bool | 화면 사이즈가 MiPlatformX의 사이즈보다 클 경우 Scroll 사용 여부 | S/G | X |
SiteKey | String | Site별 Key SiteKey가 있는 경우 Registry의 Key값을 생성할 때 참고됩니다. | S/G | X |
WantAllKeys | Bool | Ctrl과 함께 Key가 눌릴 때 KeyDown Event 발생 여부 | S/G | X |
IEHandleFlag | Bool | IE에서 Open 사용 시 IE에서 처리 여부 | S/G | X |
IECloseFlag | Bool | IE에서 Closing Event의 Closing 여부 | S/G | X |
InitBKText | String | 화면이 Loading되기 전에 보여주는 배경 Text MiPlatformX의 DoRun()함수가 호출되기 전에 나타나므로 IE Script에서는 Param 정보로 설정합니다. | S/G | X |
IERetValue | Variant | IE에서 Dialog 사용시 Return값 Dialog를 띄울 때만 유용합니다. | S/G | X |
SDI | Bool | SDI인지 MDI인지 여부 설정 | S/G | X |
IPlatformGlobal | IUnknown * | MiPlatformX가 사용할 PlatformGlobal의 Interface를 직접 설정, PlatformGlobal을 구별할 수 있는 유일한 값을 설정합니다. PlatformManager는 StartXML과 IPatformGlobal을 기준으로 PlatformGlobal을 생성합니다. StartXML을 같이 주면 MiPlatformMX와 MiPlatformX가 같은 PlatformGlobal을 사용할 수 있습니다. | S/G | X |
QuickTabsImage | String | Internet Explorer 7.0의 QuickTabs페이지에서 보여줄 Image의 URL입니다. | S/G (단, Loading후에는 변경이 적용되지 않음) | X |
QuickTabsImageLayout | String | Internet Explorer 7.0의 QuickTabs페이지에서 보여줄 Image배치 방식입니다. STRETCH 또는 TILE 또는 Align을 지정할 수 있습니다. Align은 가로 정렬로서 LEFT, CENTER, RIGHT중에서 선택이 가능하며, 세로정렬로서 TOP, MIDDLE, BOTTOM중에서 선택이 가능합니다. 정렬은 빈칸으로 구분하여 조합해야 합니다. | S/G (단, Loading후에는 변경이 적용되지 않음) | X |
QuickTabsText | String | Internet Explorer 7.0의 QuickTabs페이지에서 보여줄 Text입니다. MiPlatform으로 Browsing중인 Application의 설명 또는 이름을 적기위한 프로퍼티 입니다. | S/G (단, Loading후에는 변경이 적용되지 않음) | X |
QuickTabsTextAlign | String | Internet Explorer 7.0의 QuickTabs페이지에서 보여줄 Text의 배치 방식입니다. 가로정렬로서 LEFT, CENTER, RIGHT중에서 고를 수 있으며, 세로정렬로서 TOP, MIDDLE, BOOTM중에서 고를 수 있습니다. 정렬은 빈칸으로 구분하여 조합해야 합니다. | S/G (단, Loading후에는 변경이 적용되지 않음) | X |
QuickTabsTextFont | String | Internet Explorer 7.0의 QuickTabs페이지에서 보여줄 Text Font입니다. 문자열로 "FontFace, Size, …"와 같이 MiPlatform에서 Font를 입력하는 형식으로 입력하시면 됩니다. | S/G (단, Loading후에는 변경이 적용되지 않음) | X |
Hwnd | OLE_HANDLE | Stock Property로서 MiPlatformX의 Window Handle을 의미 합니다. | G | X |
Method
예시는 UNICODE버전을 사용합니다.
<OBJECT ID="MiPlatformX" width="70%" height="80%" Visible="true" CLASSID="CLSID: EC3500BB-63AF-45E4-9CBE-C126C77A28B5"></OBJECT>
를 기본으로 합니다.
Method명 | Parameter | return | 설명 | 예시 |
---|---|---|---|---|
DoRun | 정의된 Property값으로 MiPlatformX를 실행합니다. | MiPlatformX.DoRun(); | ||
SetGlobalVariableValue | strID strValue | Bool | 해당 PlatformGlobal의 Global Variable Value를 설정합니다. | MiPlatformX. SetGlobalVariableValue("id", "tobe"); |
strID : Global Variable ID strValue : 설정값 | ||||
GetGlobalVariableValue | strID | String | 해당 PlatformGlobal에서Global Variable Value값을 받아옵니다. | var ret =MiPlatformX. GetGlobalVariableValue("id"); |
strID : Global Variable ID | ||||
GetSelectedURL | String | 현재 Form의 경로를 받아옵니다. | var ret =MiPlatformX. GetSelectedURL(); | |
GetSelectedSource | String | 현재 Form의 source xml을 받아옵니다. | var ret =MiPlatformX. GetSelectedSource (); | |
Stop | 통신을 중지합니다. 현재 Form에서 Component가모든 생성된 후라면OnLoadCompleted Event가 발생된 후, Form의 OnActivate Event가 발생됩니다. | MiPlatformX.Stop(); | ||
Reload | 화면을 Reload합니다. | MiPlatformX,Reload(); | ||
SetVariable | strArgument | Long | Form의 Argument를 설정합니다. (Dialog, Open 시) Dialog, Open된 화면 Script에서 접근할 수 있습니다. | MiPlatformX.SetVariable("a=b c=d"); |
strArgument : Argument (a=b c=d e=g 형식으로 입력) | ||||
GetFormNo | Long | Form의 identity를 받아옵니다. DoRun()함수 호출 후에 사용해야 FormNo값을 받을 수 있습니다. | var ret = MiPlatformX. GetFormNo(); | |
SetParentForm | lNo | Parent Form을 설정합니다. DoRun()함수 호출 후에 사용해야 FormNo값을 받을 수 있습니다. | MiPlatformX.SetParentForm(ParentMiPlatformX.GetFormNo()); | |
lNo : Parent Form의 Pointer | ||||
AddChildForm | lNo | 생성된 Form을 Child로 추가합니다. Child Form의 GetFormNo() 값을 넘겨줍니다. | MiPlatformX. AddChildForm (ChildMiPlatformX.GetFormNo()); | |
lNo : Child Form의 Pointer | ||||
GetWidth | Long | Form의 Width 값을 받아옵니다. Form의 Border 영역을 뺀 ClientArea Width를 받아옵니다. | var ret = MiPlatformX.GetWidth() | |
GetHeight | Long | Form의 Height 값을 받아옵니다. Form의 Title, Border, Status영역을 뺀 ClientArea Width를 받아옵니다. | var ret = MiPlatformX.GetHeight() | |
CallScript | strExpr | Bool | Expression이나 Script 함수를 실행합니다. 실행할 Script 함수는 화면 Script에 있는 함수여야 합니다. | MiPlatformX CallScript("fnCall(‘a’)"); |
strExpr : Expression 또는 Script 함수 이름 | ||||
IsDestroyWindow | Bool | 현재의 Form 종료 여부 현재 Form의 OnDeActivateEvent 발생 후, Form의 OnUnLoadCompleted Event가 발생되며 OnUnLoadCompleted에서 return한 값을 되돌려줍니다. Return값이 true인 경우만 종료되도록 처리하십시오. | MiPlatformX. IsDestroyWindow(); | |
Close | Bool | Form을 닫습니다. MiPlatformX의 BeforeClose Event가 발생하며 여기에서 false를 return하는 경우에는 Close가 중지됩니다. BeforeClose Event에서 true를 return하면 Form의 OnDeActivate Event 발생 후, Form의 OnUnLoadCompleted Event가 발생됩니다. MiPlatformX의 ClosingWindow Event 발생 후, IECloseFlag Property 값이 True인 경우에 MiPlatformX의 Close Event가 발생됩니다. | MiPlatformX.Close(); | |
ResetPosition | Form 사이즈를 reset합니다. Form의 OnMove Event가 발생됩니다. | MiPlatformX.ResetPosition(); | ||
IsSessionSuccess | Bool | Session 성립 여부를 확인합니다. | var ret = MiPlatformX.IsSessionSuccess() | |
CreateBitmap | strImageID | IPictureDisp* | StartXML에 정의된 Resource 파일 안에 들어있는 이미지 handle을 받아옵니다. CreateBitmap으로 받은 Handle을 DestroyBitmap을 통해 제거해야만 합니다. CreateBitmap으로 받은 Handle은 MiPlatform이 공유하는 Handle입니다. | var ret = MiPlatformX.CreateBitmap ("App::BKIMAG") |
strImageID: Image ID | ||||
DestroyBitmap | pDispBitmap | Bool | 이미지 handle을 제거합니다. | var ret = MiPlatformX.DestroyBitmap (핸들값) |
pDispBitmap : 제거할 이미지 | ||||
GetIconPath | String | FormXML에 정의된 Icon Property값을 받아옵니다. | var ret = MiPlatformX.GetIconPath(); | |
SetActivate | bActivate | Active 상태를 설정합니다. Active 상태에 따라 Form의 OnActivate나 OnDeActivateEvent가 발생됩니다. | MiPlatformX. SetActivate(true); | |
bActivate : Active 상태(True/False) | ||||
GetColorValue | strColor, bRGB | Long | Color 값을 요청하면 실제 Color 값을 받아옵니다. | var ret = MiPlatformX. GetColorValue("red", false); |
strColor : Color String bRGB : False(내부적으로 UserColor, SystemColor 사용 여부) | ||||
Exit | Bool | Form의 OnExit 함수를 호출합니다. OnExit 함수의 return 값을 넘겨줍니다. Script에서 Exit함수를 호출하는것과 동일하게 작동합니다. Event발생은 A. MiPlatformX -BeforeExitApplication Event B. Script - Global OnBeforeExit Event C. Script - 열려진 모든 Form OnUnLoadCompleted Event D. Script - Global OnExit Event E. MiPlatformX - ExitApplication Evnet 순으로 발생합니다. Event중에서 exit를 원하지 않게 return할 경우에는 그 이후의 Event는 발생하지 않습니다. Event별 자세한 사항은 해당 Event의 설명을 참고합니다. 3.2이상에서만 지원합니다. | var ret = MiPlatformX.Exit(); | |
GetDialogClientAreaAdjustWidth | bTitleFlag, bMenu, bStatusBar | Long | Dialog의 전체 크기에서ClientArea를 제외한 영역의 Width를 구합니다. (ActiveX에서 Open으로 화면을 띄울 때 사용됩니다.) | var ret = MiPlatformX. GetDialogClientAreaAdjustWidth(true,false, false); |
bTitleFlag : Title 포함 여부 bMenu : Menu 포함 여부 bStatusBar : StatusBar 포함 여부 | ||||
GetDialogClientAreaAdjustHeight | bTitleFlag, bMenu, bStatusBar | Long | Dialog의 전체 크기에서ClientArea를 제외한 영역의 Height를 구합니다. (ActiveX에서 Open으로 화면을 띄울 때 사용됩니다.) | var ret = MiPlatformX. GetDialogClientAreaAdjustHeight(true,false, false); |
bTitleFlag : Title 포함 여부 bMenu : Menu 포함 여부 bStatusBar : StatusBar 포함 여부 | ||||
SetMDIStatus | bstrMDIStatus | MDI로 사용중일 때 현재 Form(ChildForm)안의 상태를 나타냅니다. 설정된 값은 Script에서 Form의 MDIStatus Property를 통해 접근 가능 합니다. | MiPlatformX. SetMDIStatus ("Min"); | |
bstrMDIStatus:Form 상태 여부(Min/Max/Normal) | ||||
CallEvent | bstrEventName, VarArg | MiPlatform의 Event를 발생하도록 합니다. 특수한 일부 Event만 가능합니다. | Var arg; MiPlatformX. CallEvent("OnActivate", arg)’; | |
bstrEventName:발생시키고자하는 Event 명 VarArg:Event 발생시 인자들 | ||||
GetDescription | String | Form의 Description Property값을 얻어옵니다. Icon Manager의 Report Type을 지원하기 위해 추가되었습니다. Report Type으로 설정되었을 때 Description Column에 추가됩니다. | Var arg; MiPlatformX. GetDescription(); | |
SetFormOpenType | bstrOpenType | MiPlatformX를 포함하는 Form이 열릴 때 Type을 설정하는 Method입니다. | MiPlatormX.SetFormOpenType("dockbar"); | |
Browser에서 Open/Dialog/Dockbar/ Normal 중 선택적으로 Form에 따라 설정합니다. |
Event
Script 함수가 호출되었을 때 발생되는 Event는 Api 매뉴얼을 참고하십시오.
Event 이름 | Parameter | 설명 |
---|---|---|
FormSize | pDisp, lwidth, lheight, pbCanceledFlag | pbCanceledFlag : Form Size를 변경할지 여부 설정 후 리턴. MoveWindow에 의한 Size 변경 시 발생됩니다. Autosize가 false이면 발생하지 않습니다. |
pDisp : Event를 발생시킨 Component의 IDispatch lwidth : 변경된 Form의 width lheight : 변경된 Form의 Height | ||
ShowStatusBar | pDisp, bShow | StartXML Loading 중 ConnectionGroup의 Statusbar 속성에 따라 Event가 발생됩니다. |
pDisp : Event를 발생시킨 Component의 IDispatch bShow : StatusBar 표시 여부 | ||
TitleChange | pDisp, strTitle | Form의 Title이 변경될 때 발생됩니다. SetTitle Event로 대치되어 발생합니다. |
pDisp : Event를 발생시킨 Component의 IDispatch strTitle : 변경된 Form Title | ||
StatusTextChange | pDisp, strStatusText | Title의 StatusText가 변경될 때 발생됩니다. |
pDisp : Event를 발생시킨 Component의 IDispatch strStatusText: 변경된 StatusBar의 Text | ||
NewWindow | pDisp, strID, strUrl, strArguement, strOpenStyle, lleft, ltop, lwidth, lheight, pbHandledFlag, plResult | MiPlatformX를 MDI 형태일 때 구현되며, MiPlatformX를 SDI 형태일 때는 구현되지 않습니다. Script에서 NewWindow Api 호출 시(ChildForm을 띄울 때)발생됩니다. Width, Height는 Form의 ClientArea 영역을 의미합니다. 실제로 ChildFrame을 띄울 때는 ClientArea의 Title, Border, Status 유무에 따라 전체 크기가 변경됩니다.(Script에서 NewWindow 호출 시) |
pDisp: Event를 발생시킨 Component의 IDispatch strID: Form의 ID strUrl: 화면 URL(Prefix::화면 이름) strArgument: New Form을 띄울 때 Argument값. Dialog, Open의 Argument 형식과 유사(a=b c=d 형식) strOpenStyle: 입력된 OpenStyle (resize=false closeflag = false 형식) Argument 형식과 유사 lleft: left ltop: top lwidth: Form의 width lheight: Form의 height pbHandledFlag: Event 처리 여부 plResult:생성된 Form의 Handle 값을 설정 후 리턴 | ||
Open | pDisp, strUrl, strArguement, strOpenStyle, lleft, ltop, lwidth, lheight, pbHandledFlag, plResult | Open으로 화면을 띄울 때 발생됩니다. Width, Height는 Form의 ClientArea영역을 의미합니다. 실제로 Open 창을 띄울 때는 ClientArea의 Title, Border에 따라 전체 크기가 변경됩니다. (Script에서 Open 호출 시) 3.2이전 버전에서는 Key처리가 제대로 되지 않아 Open Event에서 MiPlatformX를 포함하고 있는 Browser의 Open창을 띄우도록 권고하였습니다. 하지만 3.2이후버전에서는 Open Event에서 따로 처리하는 작업이 없을 경우에는 MiPlatormX에서 Open창을 띄워 줍니다. 이때 Key처리의 문제가 해결되었습니다. |
pDisp: Event를 발생시킨 Component의 IDispatch strUrl: Open하는 화면 URL(Prefix::화면 이름) strArguement: Argument (a=b c=d 형식) strOpenStyle: 입력된 OpenStyle(resize=false closeflag = false 형식) Argument 형식과 유사 lleft: left ltop: top lwidth: Form의 width lheight: Form의 height pbHandledFlag: Event 처리 여부 plResult:생성된 Form의 Handle 값을 설정 후 리턴 | ||
Dialog | pDisp, strUrl, strArguement, strOpenStyle, lleft, ltop, lwidth, lheight, pvarResult, pbHandledFlag | Dialog로 화면을 띄울 때 발생됩니다. Width, Height는 Form의 ClientArea영역을 의미합니다. 실제로 Dialog 창을 띄울 때는 ClientArea의 Title과 Border에 따라 전체크기가 변경됩니다. (Script에서 Dialog 호출 시) 3.2이전 버전에서는 Key처리가 제대로 되지 않아 Dialog Event에서 MiPlatformX를 포함하고 있는 Browser의 Dialog창을 띄우도록 권고하였습니다. 하지만 3.2이후버전에서는 Dialog Event에서 따로 처리하는 작업이 없을 경우에는 MiPlatormX에서 Dialog창을 띄워 줍니다. 이때 Key처리의 문제가 해결되었습니다. |
pDisp: Event를 발생시킨 Component의 IDispatch strUrl: Dialog로 띄울 화면 URL(Prefix::화면 이름) strArguement: Argument (a=b c=d 형식) strOpenStyle: 입력된 OpenStyle(resize=false closeflag = false 형식) Argument 형식과 유사 lleft: left ltop: top lwidth: Form의 width lheight: Form의 height pbstrResult:Dialog 종료시 리턴 값 pbHandledFlag: Event 처리 여부 | ||
BeforeNavigate | pDisp, strReqID, strServiceID, strUrl | 해당 Url 경로로 Navigation이 시작될 때 발생됩니다. |
pDisp: Event를 발생시킨 Component의 IDispatch strReqID: 해당 URL의 종류 (TobeForm, TobeImage, TobeDomain, TobeMain, TobeScript) strServiceID: Prefix를 포함한 경로 strUrl: Prefix를 변환한 경로 | ||
Close | pDisp, pbHandledFlag | MiPlatformX의 Close()함수 호출 시 Closing Event 발생 후 IECloseFlag에 따라 Close Event가 발생됩니다. 대부분 Dialog Close 시 사용됩니다. MiPlatformX의 Close()함수나 Script에서 Close() 호출 시 BeforeClose Event 발생후 IECloseFlag에 따라 Closing Event 발생하고 IECloseFlag에 따라 Close Event가 발생됩니다. Event 발생순서는 MiPlatformX의 Close 함수를 참고합니다. Open 혹은 Dialog 메소드 호출에 의해 생성된 폼에서 Close()함수 호출 시에는 MiPlatformX을 공유해서 사용하므로 이벤트가 발생하지 않습니다. |
pDisp: Event를 발생시킨 Component의 IDispatch pbHandledFlag: Event 처리 여부 | ||
Lock | pDisp, bLockFlag | Lock/Unlock 상태 변경 시 발생됩니다. |
pDisp: Event를 발생시킨 Component의 IDispatch bLockFlag: Load되어 있는지 여부 | ||
NavigateComplete | pDisp, strReqID, strServiceID, strUrl | 해당 Url 경로의 Navigation이 끝날 때 발생됩니다. (Form 단위로 발생하므로 여러 번의 BeforeNavigate가 발생해도 하나의 폼이면 한번만 발생합니다.) |
pDisp: Event를 발생시킨 Component의 IDispatch strReqID: 해당 URL의 종류 (TobeForm, TobeMain) strServiceID: Prefix를 포함한 경로 strUrl: 전체 경로 | ||
AddLogView | pDisp, strMessage | LogView에 문자가 출력될 때 발생됩니다. (script에서 Trace 호출 시) Script 실행 시 에러인 경우에 발생됩니다. IE상에서 실행 중일때는 "TraceLog_MiPlatform.txt" 파일 이름으로 Log를 남깁니다. 4GL의 경우는 자동으로 Log파일을 남기지는 않습니다. TraceMode를 True로 설정하면 AddLogView Event가 발생합니다.Log파일을 남기기 위해서는 AddLogView Event의 구현부에 직접 Log퐈일을 남기는 루틴을 추가 작성해야 합니다. |
pDisp: Event를 발생시킨 Component의 Idispatch strMessage: Log Message | ||
Communication | pDisp, bStart | 통신이 시작되거나 끝난 경우 발생됩니다. |
pDisp: Event를 발생시킨 Component의 IDispatch bStart: 통신 시작/종료 여부 | ||
ShowTitleBar | pDisp, bShow | StartXML Loading 중에 ConnectionGroup의 TitleBar 속성에 따라 Event가 발생됩니다. |
pDisp: Event를 발생시킨 Component의 IDispatch bShow: TitleBar 표시 여부 | ||
Initialize | plhHostwnd | MiPlatformX 생성되었을 때 발생됩니다. hosting하고 있는 window를 리턴합니다. IE에서는 설정하지 않습니다. |
plhHostwnd: hosting하고 있는 Window Handle을 리턴 | ||
Closing | pbCloseFlag | MiPlatformX의 Close()함수 호출 시 발생됩니다. IE의 경우, IECloseFlag 값으로 Close할 지를 설정합니다. 대부분 Dialog Close 시 사용됩니다. |
pbCloseFlag: Close 여부 | ||
RButtonDown | pDisp, lFlag, lx, ly | Rbutton이 down 되었을 때 발생됩니다. (개발자용만 발생) |
pDisp: Event를 발생시킨 Component의 IDispatch lFlag: Mouse Lbutton, RButton, MButton의 down 여부 lx: X 좌표 ly: Y 좌표 | ||
LoadCompleted | pDisp, strReqID, strServiceID, strURL | MiPlatformX가 실행될 때 각각 필요한 리소스, dataset, script 등의 Load가 완료된 때에 발생됩니다. |
pDisp: Event를 발생시킨 Component의 IDispatch strReqID: 해당 URL의 종류 (TobeForm, TobeImage, TobeDomain, TobeMain) strServiceID: Prefix가 포함된 경로 strUrl: 전체 경로 | ||
LoadMenu | pICyDom | Menu가 Load될 때 발생됩니다. (Script에서 LoadMenu 호출 시와 Start XML의 Menu 가 Load되었을 때 ) LoadMenu에서 받은 pICyDom을 가지고 SystemMenu를 구성할수 있습니다. MiPlatformX를 단독으로 사용하는 경우에는 Event안에서 따로 처리할 부분은 없습니다. |
pICyDom: Load된 ICyDom 형태의 Menu | ||
UnloadMenu | pDisp | Menu를 UnLoad될 때 발생됩니다. (Script에서 UnLoadMenu호출 시) UnLoadMenu 함수는 지원하지 않으므로 Event가 발생하지 않습니다. |
pDisp: Event를 발생시킨 Component의 IDispatch | ||
FormMenu | pICyDom | Form별로 Menu 정보가 발생됩니다. |
pICyDom: Load된 ICyDom 형태의 Menu | ||
CurrentPoint | lx, ly | 현재 마우스의 좌표(개발자용만 발생) |
lx: Mouse X 좌표 ly: Mouse Y 좌표 | ||
UserNotify | lNotifyID, strMsg | 사용자 정의 메시지가 발생될 때 발생됩니다.(Script에서 UserNotify 호출 시) |
lNotifyID: Script에서 발생시킨 NotiftID strMsg: Script에서 발생시킨 메시지 | ||
MDIInfo | pICyDom | StartXML의 MDIInfo 정보를 읽은 후 발생됩니다. |
pICyDom: Load된 ICyDom 형태의 MDIInfo | ||
PlatformError | pDisp, lError, strErrorMsg | Script 실행중에 에러가 났을 때 발생됩니다. |
pDisp: Event를 발생시킨 Component의 IDispatch lError: Error Code strErrorMsg: Error Message | ||
DockInfo | pICyDom | StartXML의 Frame 정보를 읽은 후 발생됩니다. |
pICyDom: Load된 ICyDom 형태의 DockInfo | ||
RButtonUp | pDisp, lFlag, lx, ly | Rbutton이 Up 되었을 때 발생됩니다. (개발자용만 발생) |
pDisp: Event를 발생시킨 Component의 IDispatch lFlag: Mouse Lbutton, RButton, MButton 의 down 후 up 여부 lx: X 좌표 ly: Y 좌표 | ||
NewWindowEx | pDisp, strID, strStartXMLUrl strSessionUrl, strInitUrl, strArguement, strOpenStyle, lleft, ltop, lwidth, lheight, pbHandledFlag, plResult | MiPlatformX를 MDI 형태로 처리할 때 구현되며, MiPlatformX를 SDI 형태로 처리할 때는 구현되지 않습니다. Script에서 NewWindow Api 호출 시(ChildForm을 띄울 때)발생됩니다. Width, Height는 Form의 ClientArea 영역을 의미합니다. 실제로 ChildFrame을 띄울 때는 ClientArea의 Title, Border, Status의 유무에 따라 전체 크기가 변경됩니다. (Script에서 NewWindowEx 호출 시) |
pDisp: Event를 발생시킨 Component의 IDispatch strID: Form의 ID strStartXMLUrl: 다른 StartXML의 Form을 사용할 때 StartXML 경로 strSessionUrl: SessionURL이 있는 경우 Session 경로 strInitUrl: 화면 URL(Prefix::화면 이름) strArgument: New Form을 띄울 때 Argument값 Dialog, Open의 Argument 형식과 유사(a=b c=d 형식) strOpenStyle: 입력된 OpenStyle (resize=false closeflag = false 형식) Argument 형식과 유사 lleft : left ltop : top lwidth: Form의 width lheight: Form의 height pbHandledFlag: Event 처리 여부 plResult:생성된 Form의 Handle 값을 설정 후 리턴 | ||
Activate | Form이 활성화될 때 발생됩니다. (script에서 Focus() 함수 호출 시) | |
ExitApplication | Application을 종료할 때 발생됩니다. (script에서 Exit 호출 시) | |
ArrangeWindow | pDisp, strArrangeStyle | MDI에서 창을 정렬할 때 발생됩니다. (script에서 ArrangeWindow 호출 시) |
pDisp: Event를 발생시킨 Component의 IDispatch strArrangeStyle: 정렬하려는 Style | ||
Visible | bShow | Visible 상태가 변경될 때 발생됩니다. |
bShow: Visible 상태 | ||
EnableMenuItem | strID, bEnable | script를 통해 MenuItem의 enable/disable의 상태가 변경될 때 발생됩니다. |
strID: MenuItem ID (A.B.C 형식) bEnable: Enable 여부 | ||
GetPosition | strID, plValue | Script에서 해당 PositionID 의 좌표값을 받아오는 함수를 호출했을 때 발생됩니다. (Script에서 Window.Position을 받아오는 함수 호출 시) |
strID: Position ID plValue: Position | ||
SetPosition | strID, lValue | Script에서 해당 Position ID의 좌표값을 설정하는 함수를 호출했을 때 발생됩니다. (Script에서 Window.Position을 받아오는 함수 호출 시) |
strID: Position ID lValue: Position | ||
SetWindowPosition | lleft, ltop, lwidth, lheight | Script에서 해당 윈도우의 Position을 변경할 때 발생됩니다. 강제로 WindowPosition을 바꿀 때에는 Width, Height 정보를 ClientArea 영역의 Border, Title, Status를 고려하여 설정합니다. |
lleft : left 값 ltop: Top 값 lwidth: Width 값 lheight: Height 값 | ||
GetPlatformInfo | strType, strSubType, pstrRetVal | Script에서 Platform 정보를 받아오는 함수를 호출했을 때 발생됩니다. argument는 GetPlatformInfo 함수를 참고하십시오. |
strType: Platform에서 제공되는 정보 Type strSubType: Platform에서 제공되는 정보 Type의 SubType pstrRetVal: 해당되는 값을 return | ||
GetTitle | pstrRetVal | Script에서 Title 값을 받아올 때 발생됩니다. |
pstrRetVal: 현재 Title 값 | ||
SetTitle | strTitle | Title 값이 변경될 때 발생됩니다. |
strTitle: Title 값 | ||
ChangedGlobalInfo | bstrType, bstrValue | Global 속성 중에서 변경하는 항목이 생긴 경우 발생됩니다. (script에서 ChangedGlobalInfo 호출 시) Global영역에 설정된 Property가 변경된 경우 해당 Browser에 알려 변경된 사항이 적용되도록 한다. 현재 Browser에서 제공되는 bstrType은 FONT, STATUS입니다. |
bstrType: 변경된 Global 속성 Type bstrValue: 변경된 Global 속성값 | ||
LButtonDown | pDisp nFlag nX nY | 마우스 왼쪽 버튼이 눌린 시점에서 발생합니다. |
pDisp: Event를 발생시킨 Component의 IDispatch nFlag :virtual Key가 눌렸는지 여부 8 - CTRL Key 1- Left Mouse Button 16-Middle Mouse Button 2-Right Mouse Button 4-SHIFT Key nX :LButton이 발생한 x Position nY: LButton이 발생한 y Position | ||
BeforeClose | pbCloseFlag | MiPlatformX의 Close()함수를 호출하거나 Script에서 Close()함수를 호출할 때 가장먼저 발생하는 Event로 IE에서는 IECloseFlag 에 false를 설정하면 Close작업이 중단됩니다. IECloseFlag를 설정하지 않거나 true로 설정하면 Close작업 순서에 따라 Event가 발생합니다. 이미 Closing Event가 발생하면 엔진단이 내려간 상태이므로 Browser단의 Close Event에서 닫는 작업만 가능합니다. |
pbCloseFlag: Close할지 여부를 설정 | ||
BeforeExitApplication | pbExitFlag | MiPlatformX의 Exit()함수를 호출하거나 Script에서 Exit()함수를 호출한 경우에는 가장 먼저 발생하는 Event로 IE에서 IECloseFlag에 false를 설정하면 Exit작업이 중단됩니다. IECloseFlag를 설정하지 않거나 true로 설정하면 Exit작업 순서에 따라 Event가 발생합니다. 이미 ExitApplication Event가 발생하면 엔진단이 내려간 상태이므로 Browser의 ExitApplication Event에서 종료하는 작업만 가능합니다. |
pbExitFlag:Exit할지 여부를 설정 | ||
AddFrame | pDisp bstrID bstrInitURL nLeft nTop nWidth nHeight strAlign nIndex nSubIndex strStyle pHandledFlag plResult | Script에서 AddFrame Api 호출 시(DockBar를 띄울 때)발생됩니다. Width, Height는 Form의 ClientArea 영역을 의미합니다. |
pDisp: Event를 발생시킨 Component의 IDispatch strID: Form의 ID strInitUrl: 화면 URL(Prefix::화면 이름) nleft : left ntop : top nwidth: Form의 width nheight: Form의 height strAlign:DockBar의 초기 Docking위치 nIndex:DockBar가 생성될 때 초기 위치 nSubIndex:DockBar가 생성될 Index값에서의 Sub Posiotin값 strStyle: Frame을 띄울 때 설정할 수 있는 option 정보 각 값에 대한 구분은 공백으로 하며, 값은 id=value 의 형태로 입력합니다 pbHandledFlag: Event 처리 여부 plResult:생성된 Form의 Handle 값을 설정 후 리턴 | ||
AddFrameEx | pDisp bstrID bstrStartXML bstrSessionUrl bstrInitURL nLeft nTop nWidth nHeight strAlign nIndex nSubIndex strStyle pHandledFlag plResult | Script에서 AddFrameEx Api 호출 시(DockBar를 띄울 때)발생됩니다. Width, Height는 Form의 ClientArea 영역을 의미합니다. |
pDisp: Event를 발생시킨 Component의 IDispatch strID: Form의 ID strStartXMLUrl: 다른 StartXML의 Form을 사용할 때 StartXML 경로 strSessionUrl: SessionURL이 있는 경우 Session 경로 strInitUrl: 화면 URL(Prefix::화면 이름) nleft : left ntop : top nwidth: Form의 width nheight: Form의 height strAlign:DockBar의 초기 Docking위치 nIndex:DockBar가 생성될 때 초기 위치 nSubIndex:DockBar가 생성될 Index값에서의 Sub Posiotin값 strStyle: Frame을 띄울 때 설정할 수 있는 option 정보 각 값에 대한 구분은 공백으로 하며, 값은 id=value 의 형태로 입력합니다 pbHandledFlag: Event 처리 여부 plResult:생성된 Form의 Handle 값을 설정 후 리턴 |
MiPlatformX의 사용예
예시는 MiPlatformX의 UNICODE버전을 사용합니다.
<HTML> <HEAD> <TITLE>MiPlatformX Demo Page</TITLE> <SCRIPT LANGUAGE=javascript FOR=MiPlatformCtrl EVENT=UserNotify(nNotifyID,strMsg)> alert("UserNotify" + nNotifyID + " strMsg:" + strMsg); </SCRIPT> <SCRIPT LANGUAGE="javascript"> function fn_load() { MiPlatformCtrl.AutoSize= false; MiPlatformCtrl.Key = "demo"; MiPlatformCtrl.startxml = "http://your.site.com/key/StartXML.xml"; MiPlatformCtrl.InitUrl = "DefApp::index.xml"; MiPlatformCtrl.DoRun(); } </SCRIPT> </HEAD> <BODY leftmargin=0 topmargin=0 RIGHTMARGIN="0" BOTTOMMARGIN="0" onload="fn_load()"> </OBJECT> <OBJECT ID="MiPlatformCtrl" width="70%" height="80%" Visible="true" CLASSID="CLSID: EC3500BB-63AF-45E4-9CBE-C126C77A28B5"> <PARAM NAME="InitBKText" VALUE="service name"> </OBJECT> </BODY> </HTML>
MiPlatformMX
MiPlatformMX는 MDI 형태를 지원하는 ActiveX입니다.
MDI 형태 또는 MDI 화면을 MiPlatform에서 그대로 사용하고 싶은 경우 MiPlatformMX를 사용합니다.
MiPlatformMX는 UNICODE 버전과 ANSI버전이 있으며 기능은 서로 같습니다. 두 가지 버전을 동시에 설치할 수도 있습니다. MiPlatformMX가 올라오면 PlatformGlobal Manager는 하나가 존재하며 같은 StartXML을 가지는 MiPlatformMX instance가 올라와도 각 MiPlatformMX당 PlatformGlobal은 다릅니다. 예를 들어 MiPlatformMX를 포함하고 있는 WebPage에서 새창을 열었을 경우 기존 창과 새창의 PlatformGlobal은 서로 다르면 PlatformGlobal Manager는 2개의 Platform Global을 가집니다.
MiPlatformMX는 내부적으로 MiPlatformX와 MiPlatformP을 사용해서 만들어지므로 Property, Method, Event들은 MiPlatformX, MiPlatformP와 유사합니다.
MiPlatformMX의 CLSID
버전 | CLSID |
---|---|
UNICODE | {9070C3BF-877E-49CC-AAD0-A02389EEEB13} |
ANSI | {4ECAA69A-64B9-4DA6-A28A-407658770B61} |
MiPlatformMX의 Property/Method/Event
Property
Property 이름 | 입력값/ 형태 | 설명 | SET/GET 여부 | 필수 여부 |
---|---|---|---|---|
Key | String | Caching과 Registry에서 사용되는 고유한 식별자(Unique Identify String) | S/G | 0 |
StartXML | String | 실행에 필요한 Configuration정보가 저장된 XML 문서 경로(Local 또는 http) | S/G | O |
InitURL | String | 최초에 화면에 나타나는 xml 경로 (StartXML 문서에 설정된 InitURL은 무시됩니다.) Prefix::경로 | S/G | X |
ScriptPath | String | Script 파일 경로 | S/G | X |
ComponentPath | String | MiPlatform에서 사용되는 Component DLL이 위치한 Local 경로 | S/G | X |
IERetValue | Variant | IE에서 Dialog 사용시 Return값 Dialog를 띄울 때만 유용합니다. | S/G | X |
SiteKey | String | Site별 Key SiteKey가 있는 경우 Registry의 Key값을 생성할 때 참고됩니다. | S/G | X |
IEHandleFlag | Bool | IE에서 Open 사용 시 IE에서 처리 여부 | S/G | X |
IECloseFlag | Bool | IE에서 Closing Event의 Closing 여부 | S/G | X |
InitBKText | String | 화면이 Loading되기 전에 보여주는 배경 Text MiPlatformMX의 DoRun()함수가 호출되기 전에 나타나므로 IE Script에서는 Param 정보로 설정합니다. | S/G | X |
StartImage | String | MiPlatformMX가 실행될 때 대기 중 다이얼로그의 이미지(경로정보에 Alias는 쓸 수 없음) | S/G | X |
QuickTabsImage | String | Internet Explorer 7.0의 QuickTabs페이지에서 보여줄 Image의 URL입니다. | S/G (단, Loading후에는 변경이 적용되지 않음) | X |
QuickTabsImageLayout | String | Internet Explorer 7.0의 QuickTabs페이지에서 보여줄 Image배치 방식입니다. STRETCH 또는 TILE 또는 Align을 지정할 수 있습니다. Align은 가로 정렬로서 LEFT, CENTER, RIGHT중에서 선택이 가능하며, 세로정렬로서 TOP, MIDDLE, BOTTOM중에서 선택이 가능합니다. 정렬은 빈칸으로 구분하여 조합해야 합니다. | S/G (단, Loading후에는 변경이 적용되지 않음) | X |
QuickTabsText | String | Internet Explorer 7.0의 QuickTabs페이지에서 보여줄 Text입니다. MiPlatform으로 Browsing중인 Application의 설명 또는 이름을 적기위한 프로퍼티 입니다. | S/G (단, Loading후에는 변경이 적용되지 않음) | X |
QuickTabsTextAlign | String | Internet Explorer 7.0의 QuickTabs페이지에서 보여줄 Text의 배치 방식입니다. 가로정렬로서 LEFT, CENTER, RIGHT중에서 고를 수 있으며, 세로정렬로서 TOP, MIDDLE, BOOTM중에서 고를 수 있습니다. 정렬은 빈칸으로 구분하여 조합해야 합니다. | S/G (단, Loading후에는 변경이 적용되지 않음) | X |
QuickTabsTextFont | String | Internet Explorer 7.0의 QuickTabs페이지에서 보여줄 Text Font입니다. 문자열로 "FontFace, Size, …"와 같이 MiPlatform에서 Font를 입력하는 형식으로 입력하시면 됩니다. | S/G (단, Loading후에는 변경이 적용되지 않음) | X |
Hwnd | OLE_HANDLE | Stock Property로 MiPlatformMX control의 Window Handle입니다. | G | X |
Method
예시는 UNICODE버전을 사용합니다.
<OBJECT ID="MiPlatformMX" width="70%" height="80%" Visible="true" CLASSID="CLSID: 9070C3BF-877E-49CC-AAD0-A02389EEEB13"></OBJECT>
를 기본으로 합니다.
Method 이름 | Parameter | return | 설명 | 예시 |
---|---|---|---|---|
DoRun | 정의한 Property 값으로 MiPlatformMX를 실행합니다. | MiPlatformMX.DoRun(); | ||
SetGlobalVariableValue | strStartXML strID strValue | Bool | Global Variable Value를 설정합니다. | MiPlatformMX. SetGlobalVariableValue(MiPlatformMX. StartXML, "aa", "bb"); |
strStartXML: StartXML 경로 strID: Global Variable ID strValue: 설정값 | ||||
GetGlobalVariableValue | strStartXML strID | String | Global Variable Value값을 받아옵니다. | MiPlatformMX. GetGlobalVariableValue (MiPlatformMX. StartXML, "aa"); |
strStartXML: StartXML 경로 strID: Global Variable ID | ||||
CallScript | strStartXML strExpr | Bool | Script Expression이나 Script를 실행합니다. PlatformGlobal 영역에 있는 Script만 수행 가능합니다. | MiPlatformMX. CallScript(MiPlatformMX. StartXML, "Exfrm()" |
strStartXML: StartXML 경로 strExpr: Expression 또는 | ||||
IsLoadedPlatformGlobal | strKey strStartXML | Bool | 해당 Key, StartXML의PlatformGlobal의 Loading 여부 | MiPlatformMX. IsLoadedPlatformGlobal (MiPlatformMX.Key, MiPlatformMX. StartXML) |
strKey: Key값 strStartXML: StartXML 경로 | ||||
CreateBitmap | strStartXML strImageID | IPictureDisp* | StartXML에 정의된 Resource 파일안에 있는 이미지 handle을 받아옵니다. CreateBitmap으로 받은 Handle을 DestroyBitmap을 통해 제거해야만 합니다. CreateBitmap으로 받은 Handle은 MiPlatform이 공유하는 Handle입니다. | MiPlatformMX. CreateBitmap (MiPlatformMX.Key, MiPlatformMX. StartXML) |
strStartXML: StartXML경로 strImageID: Image ID | ||||
DestroyBitmap | strStartXML pDispBitmap | Bool | 이미지 handle을 제거합니다. | |
strStartXML: StartXML 경로 pDispBitmap: 제거할 이미지 | ||||
NewWindow | strID, strUrl, strArguement, strWidth strHeight strOpenStyle, strLeft, strTop | MDI 형태에서 ChildFrame을 띄웁니다. Width, Height는 Form의 ClientArea 영역을 의미합니다. 실제로 ChildFrame을 띄울 때는 ClientArea의 Title, Border, Status의 유무에 따라 전체 크기가 변경됩니다. | MiPlatformMX.NewWindow("MDIForm2","Tutorial::Login.xml","", "300","400"," resize=true closeflag=false status=false","-1", "-1"); | |
strID: Form의 ID strUrl: 화면 URL(Prefix::화면 이름) strArgument: New Form을 띄울 때 Argument 값. Dialog, Open의 Argument 형식과 유사(a=b c=d 형식) strwidth: Form의 width strheight: Form의 height strOpenStyle: 입력된 OpenStyle (resize=false closeflag = false 형식) Argument 형식과 유사 strleft: left strtop: top | ||||
NewWindowEx | strID, strStartXML strSessionUrl, strInitUrl, strArguement, strWidth, strHeight, strOpenStyle, strLeft, strTop | MDI 형태에서 ChildFrame을 띄웁니다. Width, Height는 Form의 ClientArea 영역을 의미합니다. 실제로 ChildFrame을 띄울 때는 ClientArea의 Title, Border, Status의 유무에 따라 전체 크기가 변경됩니다. StartXML이 다른 경우에 사용됩니다. | MiPlatformMX.NewWindowEx("MDIForm2","file://D:\\Script\\MobileSMA_mit_main.xml", "MobileSMA::MainSession", "MobileSMA::MainLogin","", "300","400", " resize=true status=false closeflag=true","-1", "-1"); | |
strID: Form의 ID strStartXML: 다른 StartXML의 Form을 사용할 때 StartXML의 경로 strSessionUrl: SessionURL이 있는 경우 Session의 경로 strInitUrl: 화면 URL(Prefix::화면 이름) strArgument: New Form을 띄울 때 Argument값 Dialog, Open의 Argument 형식과 유사(a=b c=d 형식) strwidth: Form의 width strheight: Form의 height strOpenStyle: 입력된 OpenStyle (resize=false closeflag = false 형식) Argument 형식과 유사 strleft: left strtop: top | ||||
InitSession | strStartXML lSessionFlag | Session을 특정 상태로 초기화 합니다. Session이 연결되지 않은채 Session을 사용하는 화면을 띄우면 Session이 연결될 때까지 SessionURL을 띄웁니다. | MiPlatformMX.InitSession(MiPlatformMX.StartXML, true); | |
strStartXML: StartXML 경로 lSessionFlag: SessionFlag로 true면 Session이 연결되도록 설정되고, false면 Session이 연결되지 않도록 설정됩니다. | ||||
CloseSession | strStartXML | Session 연결이 중지됩니다. | MiPlatformMX. CloseSession (MiPlatformMX.StartXML); | |
strStartXML: StartXML 경로 | ||||
Exit | strStartXML | Bool | Form의 OnExit 함수를 호출합니다. Script에서 Exit함수를 호출하는것과 동일하게 작동합니다. Event발생은 A. MiPlatformMX -BeforeExitApplication Event B. Script - Global OnBeforeExit Event C. Script - 열려진 모든 Form OnUnLoadCompleted Event D. Script - Global OnExit Event E. MiPlatformMX - ExitApplication Evnet 순으로 발생합니다. Event중에서 exit를 원하지 않게 return할 경우에는 그 이후의 Event는 발생하지 않습니다. Event별 자세한 사항은 해당 Event의 설명을 참고합니다. | MiPlatformMX.Exit(MiPlatformMX.StartXML); |
GetPlatformOleControl | IUnknown* | MiPlatformMX가 내부적으로 사용하는 MiPlatformP의 유일값으로 PlatformGlobal을 구별하기 위한 값으로 사용합니다. | Var ret = MiPlatformMX.GetPlatformOlecontrol(); | |
ShowMenuBar | bVisible | Bool | MiPlatformMX가 웹브라우저등과 같은 객체에 임베디드되어 사용될 때 상단에 표시되는 메뉴바를 감추거나 보이고자 할 때 사용합니다. 마이플랫폼 전용브라우저에서는 해당 메소드를 사용할 수 없습니다. 이 메소드는 DoRun() 메소드 이후에 호출해야 정상 동작합니다. | Var ret = MiPlatformMX.ShowMenuBar(false); |
bVisible=false/true(false=감추기,true=보이기) |
Event
Script 함수가 호출되었을 때 발생되는 Event는 Api 매뉴얼을 참고하십시오.
MiPlatformMX의 Event는 MiPlatformX가 받은 Event를 MiPlatformMX로 넘깁니다.
Event 이름 | Parameter | 설명 |
---|---|---|
FormSize | strSendFormID, lwidth, lheight | MoveWindow에 의한 Size 변경 시 발생됩니다. |
strSendFormID: Event를 발생시킨 Form의 ID lwidth: 변경된 Form의 width lheight: 변경된 Form의 Height | ||
ShowStatusBar | strSendFormID, bShow | StartXML Loading 중 ConnectionGroup의 Statusbar 속성에 따라 Event가 발생됩니다. |
strSendFormID: Event를 발생시킨 Form의 ID bShow: StatusBar 표시여부 | ||
NewWindow | strSendFormID, strID, strUrl, strArguement, strOpenStyle, lleft, ltop, lwidth, lheight, | MiPlatformX를 MDI 형태로 처리할 때 구현되며, MiPlatformX를 SDI 형태로 처리할 때는 구현되지 않습니다. Script에서 NewWindow Api 호출 시(ChildForm을 띄울 때)발생됩니다. Width, Height는 Form의 ClientArea 영역을 의미합니다. 실제로 ChildFrame을 띄울 때는 ClientArea의 Title, Border, Status의 유무에 따라 전체 크기가 변경됩니다.(Script에서 NewWindow 호출 시) |
strSendFormID: Event를 발생시킨 Form의 ID strID: Form의 ID strUrl: 화면 URL(Prefix::화면 이름) strArgument: New Form을 띄울 때 Argument 값. Dialog, Open의 Argument 형식과 유사(a=b c=d 형식) strOpenStyle: 입력된 OpenStyle (resize=false closeflag = false 형식) Argument 형식과 유사 lleft: left ltop: top lwidth: Form의 width lheight: Form의 height | ||
Open | pDisp, strUrl, strArguement, strOpenStyle, lleft, ltop, lwidth, lheight, | Open으로 화면을 띄울 때 발생됩니다. Width, Height는 Form의 ClientArea 영역을 의미합니다. 실제로 Open 창을 띄울 때는 ClientArea의 Title, Border에 따라 전체 크기가 변경됩니다. (Script에서 Open 호출 시) 3.2이전 버전에서는 Key처리가 제대로 되지 않아 Open Event에서 MiPlatformMX를 포함하고 있는 Browser의 Open창을 띄우도록 권고하였습니다. 하지만 3.2이후버전에서는 Open Event에서 따로 처리하는 작업이 없을 경우에는 MiPlatormMX에서 Open창을 띄워 줍니다. 이때 Key처리의 문제가 해결되었습니다. |
pDisp: Event를 발생시킨 Form의 IDispatch strUrl: Open할 화면 URL(Prefix::화면 이름) strArguement: Argument (a=b c=d 형식) strOpenStyle: 입력된 OpenStyle(resize=false closeflag = false 형식) Argument 형식과 유사 lleft: left ltop: top lwidth: Form의 width lheight: Form의 height | ||
Dialog | pDisp, strUrl, strArguement, strOpenStyle, lleft, ltop, lwidth, lheight, | Dialog로 화면을 띄울 때 발생됩니다. Width, Height는 Form의 ClientArea 영역을 의미합니다. 실제로 Dialog 창을 띄울 때는 ClientArea의 Title, Border에 따라 전체 크기가 변경됩니다. (Script에서 Dialog 호출 시) 3.2이전 버전에서는 Key처리가 제대로 되지 않아 Dialog Event에서 MiPlatformMX를 포함하고 있는 Browser의 Dialog창을 띄우도록 권고하였습니다. 하지만 3.2이후버전에서는 Dialog Event에서 따로 처리하는 작업이 없을 경우에는 MiPlatormMX에서 Dialog창을 띄워 줍니다. 이때 Key처리의 문제가 해결되었습니다. |
pDisp: Event를 발생시킨 Form의 IDispatch strUrl: Dialog로 띄울 화면 URL(Prefix::화면 이름) strArguement: Argument (a=b c=d 형식) strOpenStyle: 입력된 OpenStyle(resize=false closeflag = false 형식) Argument 형식과 유사 lleft: left ltop: top lwidth: Form의 width lheight: Form의 height | ||
BeforeNavigate | strSendFormID, strReqID, strServiceID, strUrl | 해당 Url 경로로 Navigation을 시작할 때 발생됩니다. |
strSendFormID: Event를 발생시킨 Form의 ID strReqID: 해당 URL의 종류 (TobeForm, TobeImage, TobeDomain, TobeMain, TobeScript) strServiceID: Prefix를 포함한 경로 strUrl: Prefix를 변환한 경로 | ||
Close | strSendFormID, pbHandledFlag | MiPlatformMX의 Close()함수 호출 시 Closing Event 발생 후 IECloseFlag에 따라 CloseEvent가 발생됩니다. 대부분 Dialog Close 시 사용됩니다. Script에서 Close() 호출 시 Form의 OnUnLoadCompleted Event가 발생후 Close Event가 발생됩니다. (Script에서 Close() 함수 호출시 내부적으로 MiPlatformX의 기능을 활용하므로 MiPlatformX에서 Close Event가 발생하는 조건에 한해서 발생합니다.) |
strSendFormID: Event를 발생시킨 Form의 ID pbHandledFlag: Event 처리 여부 | ||
Lock | strSendFormID, bLockFlag | Lock/Unlock 상태 변경 시 발생됩니다. |
strSendFormID: Event를 발생시킨 Form의 ID bLockFlag: Load되어 있는지 여부 | ||
NavigateComplete | strSendFormID, strReqID, strServiceID, strUrl | 해당 Url 경로로 Navigation이 끝날 때 발생됩니다. (Form 단위로 발생하므로 여러 번의 BeforeNavigate가 발생해도 하나의 폼이면 한번만 발생합니다.) |
strSendFormID: Event를 발생시킨 Form의 ID strReqID: 해당 URL의 종류 (TobeForm, TobeMain) strServiceID: Prefix를 포함한 경로 strUrl: 전체 경로 | ||
UnloadMenu | Menu를 UnLoad시킬 때 발생됩니다. (Script에서 UnLoadMenu 호출 시) UnLoadMenu 함수는 지원하지 않으므로 Event가 발생하지 않습니다. | |
AddLogView | strSendFormID, strMessage | LogView에 문자가 출력될 때 발생됩니다. (script에서 Trace 호출 시) Script 실행 시 에러인 경우에 발생됩니다. IE 상에서 실행 중일때는 "TraceLog_MiPlatform.txt" 파일 이름으로 Log를 남깁니다. |
strSendFormID: Event를 발생시킨 Form의 ID strMessage: Log Message | ||
Communication | strSendFormID, bStart | 통신을 시작되거나 통신이 끝난 경우 발생됩니다. |
strSendFormID: Event를 발생시킨 Form의 ID bStart: 통신 시작/종료 여부 | ||
JobCompleted | strSendFormID strReqID strServiceID strURL | MiPlatformMX를 실행하기 위해 필요한 정보(StartXML, Resource, Dataset)가 전부 올라온 후에 발생됩니다 |
strSendFormID: Event를 발생시킨 Form의 ID strReqID: TobeForm strServiceID: 전체 경로 strUrl: 전체 경로 | ||
ShowTitleBar | strSendFormID, bShow | StartXML Loading 중에 ConnectionGroup의 TitleBar 속성에 따라 Event가 발생됩니다. |
strSendFormID: Event를 발생시킨 Form의 ID bShow: TitleBar 표시 여부 | ||
Initialize | strSendFormID, plhHostwnd | MiPlatformMX 생성되었을 때 발생됩니다. hosting하고 있는 window를 리턴합니다. IE에서는 설정하지 않습니다. |
strSendFormID: Event를 발생시킨 Form의 ID plhHostwnd: hosting하고 있는 Window 리턴 | ||
LoadCompleted | strSendFormID, strReqID, strServiceID, strURL | MiPlatformMX가 실행될 때 각각 필요한 리소스, dataset, script등이 Load가 완료된 때에 발생됩니다. |
strSendFormID: Event를 발생시킨 Form의 ID strReqID: 해당 URL의 종류 (TobeForm, TobeImage,TobeDomain,TobeMain) strServiceID: Prefix가 포함된 경로 strUrl: 전체 경로 | ||
LoadMenu | pICyDom strStartXML strURL | MDI에서 NewWindowEx를 통해서 Menu가 Load된 경우에는 현재 Menu가 변경되지 않습니다. 하지만 LoadMenu()함수를 호출한 경우에는 Menu가 변경됩니다. Menu를 Load할 때 발생됩니다. (Script에서 LoadMenu 호출 시) |
pICyDom: Load된 ICyDom 형태의 Menu strStartXML: MainStartXML strURL: 현재 실행 중인 StartXML | ||
UserNotify | strSendFormIDlNotifyID, strMsg | 사용자가 정의한 메시지를 발생시킬 때 발생됩니다. (Script에서 UserNotify 호출 시) |
strSendFormID: Event를 발생시킨 Form의 ID lNotifyID: Script에서 발생시킨 NotiftID strMsg: Script에서 발생시킨 메시지 | ||
PlatformError | lError, strErrorMsg | Error가 났을 때 발생됩니다. |
lError: Error Code strErrorMsg: Error Message | ||
NewWindowEx | strSendFormID, strID, strStartXMLUrl strSessionUrl, strInitUrl, strArguement, strOpenStyle, lleft, ltop, lwidth, lheight, | MiPlatformX를 MDI 형태로 처리할 때 구현되며, MiPlatformX를 SDI 형태로 처리할 때는 구현되지 않습니다. Script에서 NewWindow Api 호출 시(ChildForm을 띄울 때)발생됩니다. Width, Height는 Form의 ClientArea 영역을 의미합니다. 실제로 ChildFrame을 띄울 때는 ClientArea의 Title, Border, Status의 유무에 따라 전체 크기가 변경됩니다. (Script에서 NewWindowEx 호출 시) |
strSendFormID: Event를 발생시킨 Form의 ID strID: Form의 ID strStartXMLUrl: 다른 StartXML의 Form을 사용할 때 StartXML의 경로 strSessionUrl: SessionURL이 있는 경우 Session 경로 strInitUrl: 화면 URL(Prefix::화면 이름) strArgument: New Form을 띄울 때 Argument값 Dialog, Open의 Argument 형식과 유사(a=b c=d 형식) strOpenStyle: 입력된 OpenStyle (resize=false closeflag = false 형식) Argument 형식과 유사 lleft: left ltop: top lwidth: Form의 width lheight: Form의 height | ||
Activate | strSendFormID | Form이 활성화 될 때 발생됩니다. (Script에서 Form에 Focus() 호출해 Active 시킬 경우) |
strSendFormID: Event를 발생시킨 Form의 ID (일부 Open, Dialog 메소드 호출에 의해 생성된 폼의 경우 내부적으로 MiPlatformX를 공유하게 되어 부모폼의 ID 표시) | ||
ExitApplication | strSendFormID | Application을 종료할 때 발생됩니다. (script에서 Exit 호출 시) |
strSendFormID: Event를 발생시킨 Form의 ID | ||
Visible | strSendFormID, bShow | Visible 상태가 변경될 때 발생됩니다. |
strSendFormID: Event를 발생시킨 Form의 ID bShow: Visible 상태 | ||
BeforeExitApplication | pbExitFlag | MiPlatformMX의 Exit()함수를 호출하거나 Script에서 Exit()함수를 호출한 경우에는 가장먼저 발생하는 Event로 IE에서 IECloseFlag에 false를 설정하면 Exit작업이 중단됩니다. IECloseFlag를 설정하지 않거나 true로 설정하면 Exit작업 순서에 따라 Event가 발생합니다. 이미 ExitApplication Event가 발생하면 엔진단이 내려간 상태이므로 Browser의 ExitApplication Event에서 종료하는 작업만 가능합니다. |
pbExitFlag:Exit할지 여부를 설정 |
MiPlatformMX의 사용예
예시는 MiPlatformMX의 UNICODE버전을 사용합니다.
<HTML> <HEAD> <TITLE>MiPlatformMX Demo Page</TITLE> <SCRIPT LANGUAGE="JavaScript"> function fn_load() { MiPlatformMX.Key = "Demo"; MiPlatformMX.StartXML = "http://your.site.com/key/StartXML.xml"; MiPlatformMX.DoRun(); } </SCRIPT> <SCRIPT LANGUAGE=javascript FOR=MiPlatformMX EVENT=AddLogView(strMsg)> alert("AddLogView"+strMsg); </SCRIPT> </HEAD> <BODY LEFTMARGIN="0" RIGHTMARGIN="0" TOPMARGIN="0" BOTTOMMARGIN="0" SCROLL="no" onload="fn_load()"> <OBJECT ID="MiPlatformMX" BORDER="0" WIDTH="800" HEIGHT="800" CLASSID="CLSID: 9070C3BF-877E-49CC-AAD0-A02389EEEB13"> </OBJECT> </BODY> </HTML>
MiPlatformMX 플러그인
MiPlatformMX 플러그인은 MDI 형태를 지원하는 멀티 브라우저 지원(Cross-Platform 구현)용 프로그램입니다. ActiveX인 MiPlatformMX은 Microsoft사의 Internet Explorer 브라우저만 지원하므로 보다 다양한 브라우저를 지원하기 위해 NPAPI(Netscape Plugin Application Programming Interface)를 지원하는 모든 브라우저에서 쓸 수 있도록 모질라 플러그인 기술을 접목한 모듈입니다.
MiPlatformMX 플러그인이 지원하는 브라우저는 아래와 같습니다.(기준날짜 : 2010년 2월)
브라우저명 | 실행모듈명 | 최소지원 버전 | 권장적용버전 | 비고 |
---|---|---|---|---|
파이어폭스 | firefox.exe | 2.0.20, 3.0.5 | 3.5 | |
구글 크롬 | chrome.exe | 1.0.154.48 | 2.0.172.33 | |
Flock | flock.exe | 2.0.3 | 2.5 | |
애플 사파리 | Safari.exe | 525.27.1 | 4.0(530.17) | |
오페라 | opera.exe | 9.0.0.6 | 9.64(10487) |
플러그인 기술은 브라우저에 종속된 기능이므로 가급적 권장 버전을 사용하시기 바라며, 브라우저의 기능 및 정책에 따라 제약이 있을 수 있습니다. 이 경우 마이플랫폼의 기능에 한해 마이플랫폼 기술지원 정책에 따라 지원을 받으실 수 있습니다.
이하 언급되지 않은 부분은 MiPlatformMX와 동일하므로 생략합니다.
제약 사항
지원하지 않는 기능
IE의 Tab과 관련된 속성은 상이한 브라우저 환경으로 인해 지원을 하지 않습니다.
(QuickTabs이 붙은 속성 5개 : QuickTabsImage, QuickTabsImageLayout, QuickTabsTextAlign, QuickTabsText, QuickTabsTextFont)
IE가 붙은 속성들은 속성명이 변경되었습니다.(스크립트 호환을 위해 기존 속성도 사용할 수 있음)
IERetValue -> BrowserRetValue
IEHandleFlag -> BrowserHandleFlag
IECloseFlag -> BrowserCloseFlag
Exit 메소드는 플러그인의 독특한 동작으로 인해 동작하지 않습니다.(스크립트 호환상 메소드는 존재함)
발견된 문제점
Edit가 가능한 컴포넌트(Grid, Edit, TextArea, Combo등)에서 한글과 같은 다국어를 입력하다가 키보드의 방향키(←,→,↑,↓, Home, End 둥)로 입력위치를 변경하게 되면 변경된 위치로 마지막 입력문자가 이동하는 증상이 있습니다. 이는 FireFox와 Flock 브라우저에서만 발견되는 증상이며, 방향키를 누르는 순간 IE를 비롯한 다른 브라우저 및 대부분의 프로그램과 달리 OnKeyDown 이벤트와 OnChar 이벤트 순서가 뒤바뀌어 전달됨으로 인해 문제점을 일으키고 있는 상태입니다. (콤보 컴포넌트의 Search 속성이 활성화 된 경우에는 방향키 문제 뿐만 아니라 엔터키를 쳤을 경우에도 입력된 마지막 문자만 남는 증상을 보입니다.)
NPAPI의 내부 원리상 동일한 브라우저를 다수 띄워 놓아도 내부적으로는 플러그인 모듈을 한번만 로딩하고 그 이후에는 새롭게 인스턴스만 생성하는 매커니즘으로 구현되어 있습니다. 이러한 매커니즘으로 인해 스크립트에서 Exit 메소드를 호출할 경우 호출한 브라우저 뿐만 아니라 나머지 모든 브라우저도 Exit 기능이 동작하는 문제점이 발생합니다. 또한 세션창과 같이 프로그램을 정지시키는 화면이 띄워져 있을 경우 나머지 브라우저 화면들도 함께 정지되는 현상이 나타나게 되므로 개발 및 운영시 주의가 요구됩니다.
MiPlatformMX 플러그인의 사용예
예시는 MiPlatformMX 플러그인의 UNICODE버전을 사용합니다.
<HTML> <HEAD> <TITLE>MiPlatformMX Demo Page</TITLE> <SCRIPT LANGUAGE="JavaScript"> function CreateMiPlatformCtrlPlugin330_XU() { document.write(' <embed type="application/mozilla-MiPlatformMX330U-plugin" width=100% height=100% id=" MiPlatformMX" > '); } function fn_load() { MiPlatformMX.Key = "Demo"; MiPlatformMX.StartXML = "http://your.site.com/key/StartXML.xml"; MiPlatformMX.DoRun(); } </SCRIPT> <SCRIPT LANGUAGE=javascript FOR=MiPlatformMX EVENT=AddLogView(strMsg)> alert("AddLogView"+strMsg); </SCRIPT> </HEAD> <BODY LEFTMARGIN="0" RIGHTMARGIN="0" TOPMARGIN="0" BOTTOMMARGIN="0" SCROLL="no" onload="fn_load()"> <SCRIPT language="javascript" > CreateMiPlatformCtrlPlugin330_XU(); </SCRIPT> </BODY> </HTML>
MiPlatformP
MiPlatformP는 StartXML의 정보를 관리하는 ActiveX입니다.
MiPlatformP는 단독으로 사용할 수 없으며 MiPlatformX와 같이 사용해야 합니다. MDI 형태를 지원하기 위한 ActiveX이기 때문에 IE에서는 지원하지 않습니다.
MiPlatformP는 UNICODE 버전과 ANSI 버전이 있으며 기능은 서로 같습니다. 두 가지 버전을 동시에 설치할 수도 있습니다.
MiPlatformP의 CLSID
버전 | CLSID |
---|---|
UNICODE | {1719128B-B96D-47D5-8E09-D355E055179E } |
ANSI | {56CE3290-7CA9-45E2-A115-606005CD6A90 } |
MiPlatformP의 Property/Method/Event
Property
Property는 존재하지 않습니다.
Method
예시는 UNICODE버전을 사용합니다.
<OBJECT ID="MiPlatformP" width="0" height="0" Visible="true" CLASSID="CLSID: 1719128B-B96D-47D5-8E09-D355E055179E"></OBJECT>
를 기본으로 합니다.
Method명 | Parameter | return | 설명 | 예시 |
---|---|---|---|---|
GetConnectionGroupInfo | strStartXML | IDispatch* | 해당 StartXML의 ConnectionGroup 정보를 받아옵니다. | MiPlatformP. GetConnectionGroupInfo (MiPlatformX.StartXM:L); |
strStartXML: StartXML | ||||
CreateBitmap | strStartXML strImageID | IPictureDisp* | StartXML에 정의된 Resource 파일 안에 들어있는 이미지 handle을 받아옵니다. CreateBitmap으로 받은 Handle을 DestroyBitmap을 통해 제거해야만 합니다. CreateBitmap으로 받은 Handle은 MiPlatform이 공유하는 Handle입니다. | MiPlatformP. CreateBitmap (MiPlatformX. StartXML, "IDB_ICO"); |
strStartXML: StartXML strImageID: Image ID | ||||
DestroyBitmap | strStartXML pDispBitmap | Bool | 이미지 handle을 제거합니다. | MiPlatformP. DestroyBitmap (MiPlatformX. StartXML, 핸들값); |
strStartXML: StartXML pDispBitmap : 제거할 이미지 | ||||
GetMenu | strStartXML | IAxDOM* | StartXML의 Menu를 받아옵니다. | MiPlatformP. GetMenu(MiPlatformMX. StartXML, "Exfrm()" |
strStartXML: StartXML | ||||
CallScript | strStartXML strExpr | Bool | StartXML을 사용하는 PlatformGlobal에서 Script를 실행합니다. | MiPlatformP. CallScript(MiPlatformMX.Key, MiPlatformMX. StartXML) |
strStartXML: StartXML strExpr: Script 이름 | ||||
AddChildForm | strStartXML lNo | StartXML을 사용하는 PlatformGlobal의 Child로 생성된 Form을 추가합니다. Child Form의 GetFormNo() 값을 넘겨줍니다. | MiPlatformP.AddChildForm(MiPlatformX.StartXML, MiPlatformX.GetFormNo()); | |
strStartXML: StartXML 경로 lNo: Child Form의 Pointer | ||||
GetColorValue | strStartXML strColor bRGB | Long | Color값을 요청하면 실제 Color값을 받아옵니다. | var ret = MiPlatformP. GetColorValue(MiPlatformX.StartXML,"red", false); |
strStartXML: StartXML 경로 strColor: Color String bRGB: False(내부적으로 UserColor, SystemColor 사용 여부) | ||||
InitSession | strStartXML, lSessionFlag | Session을 특정 상태로 초기화 합니다. Session이 연결되지 않은채 Session을 사용하는 화면을 띄우면 Session이 연결될 때까지 SessionURL을 띄웁니다. | MiPlatformP.InitSession(MiPlatformX.StartXML, true); | |
strStartXML: StartXML lSessionFlag: SessionFlag로 true면 Session이 연결되도록 설정됩니다, false면 Session이 연결되지 않도록 설정됩니다. | ||||
Exit | strStartXML | Bool | Global의 OnExit Event를 발생합니다. Exit함수를 호출하기 전에 BeforeExit함수를 미리 호출하여 종료가 가능한지 점검합니다. | var ret = MiPlatformP.Exit(MiPlatformX.StartXML); |
CloseSession | strStartXML | Session 연결이 중지됩니다. | MiPlatformP. CloseSession (MiPlatformX.StartXML); | |
strStartXML: StartXML | ||||
IsLoadedPlatformGlobal | strKey strStartXML | Bool | 해당 Key, StartXML의PlatformGlobal의 Loading 여부 | MiPlatformP. IsLoadedPlatformGlobal (MiPlatformMX.Key, MiPlatformMX. StartXML) |
strKey: Key strStartXML: StartXML 경로 | ||||
GetStartXML | strKey | String | Key에 해당하는 StarXML을 받아옵니다. | var ret = MiPlatformP.GetStartXML() |
strKey: Key값 | ||||
SetGlobalVariableValue | strStartXML strID strValue | Bool | StartXML을 사용하는 PlatformGlobal의 Global Variable Value를 설정합니다. | MiPlatformP. SetGlobalVariableValue (MiPlatformX. StartXML, "aa", "bb"); |
strStartXML: StartXML strID: Global Variable ID strValue: 설정값 | ||||
GetGlobalVariableValue | strStartXML strID | Sting | StartXML을 사용하는 PlatformGlobal에서 Global Variable Value값을 받아옵니다. | MiPlatformP. GetGlobalVariableValue (MiPlatformX. StartXML, "aa"); |
strStartXML: StartXML strID: Global Variable ID | ||||
BeforeExit | strStartXML | Bool | Script에서 Exit를 호출할 경우 먼저 BeforeExit Event를 발생시키기 위해 필요한 함수로 종료 여부를 Script에서 받아 처리합니다. | MiPlatformP.BeforeExit (MiPlatformX.StartXML); |
strStartXML: StartXML | ||||
CallEvent | strStartXML, bstrEventName, VarArg | MiPlatform의 Event를 발생하도록 합니다. 특수한 일부 Event만 가능합니다. | Var arg; MiPlatformP. CallEvent(MiPlatformX. StartXML, "OnActivate", arg)’; | |
strStartXML: StartXML bstrEventName:발생시키고자하는 Event 명 VarArg:Event 발생시 인자들 | ||||
GetPlatformOleControl | IUnknown* | MiPlatformP의 유일값으로 PlatformGlobal을 구별하기 위한 값으로 사용합니다. | Var ret = MiPlatformP.GetPlatformOlecontrol(); |
Event
Script 함수가 호출되었을 때 발생되는 Event는 Api 매뉴얼을 참고하십시오.
Event명 | Parameter | 설명 |
---|---|---|
LoadStarted | pDisp strReqID, strServiceID strUrl | Size 변경 시 발생됩니다. |
pDisp: Event를 발생시킨 Component의 IDispatch strReqID: 해당 URL의 종류 (TobeForm, TobeImage, TobeDomain, TobeMain) strServiceID: Prefix가 포함된 경로 strUrl: 전체 경로 | ||
Lock | pDisp, bLockFlag | Lock/Unlock 상태 변경 시 발생됩니다. |
pDisp: Event를 발생시킨 Component의 IDispatch bLockFlag: Load 여부 | ||
AddLogView | pDisp strMessage | LogView에 문자가 출력될 때 발생됩니다. (script에서 Trace 호출 시) Script 실행 시 에러인 경우에 발생됩니다. IE 상에서 실행 중일때는 "TraceLog_MiPlatform.txt" 파일 이름으로 Log를 남깁니다. |
pDisp: Event를 발생시킨 Component의 IDispatch strMessage: Log Message | ||
Communication | pDisp bStart | pDisp: Event를 발생시킨 Component의 IDispatch bStart: 통신의 시작/종료 여부 통신이 시작되거나 통신이 끝난 경우 발생됩니다. |
ShowTitleBar | pDisp bShow | StartXML Loading 중에 ConnectionGroup의 TitleBar 속성에 따라 Event가 발생됩니다. |
pDisp: Event를 발생시킨 Component의 IDispatch bShow: TitleBar 표시 여부 | ||
LoadCompleted | pDisp strReqID strServiceID strURL | MiPlatformX가 실행될 때 각각의 필요한 리소스, dataset, script 등의 Load가 완료된 때 발생됩니다. |
pDisp: Event를 발생시킨 Component의 IDispatch strReqID: 해당 URL의 종류 (TobeForm, TobeImage, TobeDomain, TobeMain) strServiceID: Prefix가 포함된 경로 strUrl: 전체 경로 | ||
LoadMenu | ICyDom strStartXML strURL strFont | MDI에서 NewWindowEx를 통해서 Menu가 Load된 경우에는 현재 Menu가 변경되지 않습니다. 하지만 LoadMenu()함수를 호출한 경우에는 Menu가 변경됩니다. Menu를 Load할 때 발생됩니다. (Script에서 LoadMenu 호출 시) |
pICyDom: Load된 ICyDom 형태의 Menu strStartXML: MainStartXML strURL: 현재 실행 중인 StartXML strFont: 변경된 Font 정보 | ||
MDIInfo | ICyDom | StartXML Loading 중에 MDIInfo 정보가 있는 경우에 발생됩니다. |
IcyDom: MDIInfo Dom | ||
PlatformError | pDisp lError strErrorMsg | 동작 오류가 발생 했을 때 발생됩니다 |
pDisp: Event를 발생시킨 Component의 IDispatch lError: Error Code strErrorMsg: Error Message | ||
ShowStatusBar | pDisp bShow | StartXML Loading 중에 ConnectionGroup의 Statusbar 속성에 따라 Event가 발생됩니다. |
pDisp: Event를 발생시킨 Component의 IDispatch bShow: StatusBar 표시 여부 | ||
DockInfo | ICyDom | StartXML Loading 중에 DockInfo 정보가 있는 경우에 발생됩니다. |
IcyDom:MDIInfo Dom | ||
NewWindow | pDisp, strID, strUrl, strArguement, strOpenStyle, lleft, ltop, lwidth, lheight, pbHandledFlag, plResult | MiPlatformX를 MDI 형태로 처리할 때 구현되며, MiPlatformX를 SDI 형태로 처리할 때는 구현되지 않습니다. Script에서 NewWindow Api 호출 시(ChildForm을 띄울 때)발생됩니다. Width, Height는 Form의 ClientArea 영역을 의미합니다. 실제로 ChildFrame을 띄울 때는 ClientArea의 Title, Border, Status의 유무에 따라 전체 크기가 변경됩니다. (Script에서 NewWindow 호출 시) |
pDisp: Event를 발생시킨 Component의 IDispatch strID: Form의 ID strUrl: 화면 URL(Prefix::화면 이름) strArgument: New Form을 띄울 때 Argument 값. Dialog, Open의 Argument 형식과 유사(a=b c=d 형식) strOpenStyle: 입력된 OpenStyle (resize=false closeflag = false 형식) Argument 형식과 유사 lleft: left ltop: top lwidth: Form의 width lheight: Form의 height pbHandledFlag: Event 처리 여부 plResult:생성된 Form의 Handle 값을 설정 후 리턴 | ||
NewWindowEx | pDisp strID, strStartXMLUrl strSessionUrl, strInitUrl, strArguement, strOpenStyle, lleft, ltop, lwidth, lheight, pbHandledFlag, plResult | MiPlatformX를 MDI 형태로 처리할 때 구현되며, MiPlatformX를 SDI 형태로 처리할 때는 구현되지 않습니다. Script에서 NewWindow Api 호출 시(ChildForm을 띄울 때) 발생됩니다. Width, Height는 Form의 ClientArea 영역을 의미합니다. 실제로 ChildFrame을 띄울 때는 ClientArea의 Title, Border, Status의 유무에 따라 전체 크기가 변경됩니다. (Script에서 NewWindowEx 호출 시) |
pDisp: Event를 발생시킨 Component의 IDispatch strID: Form의 ID strStartXMLUrl: 다른 StartXML의 Form을 사용할 때 StartXML의 경로 strSessionUrl: SessionURL이 있는 경우 Session 경로 strInitUrl: 화면 URL(Prefix::화면 이름) strArgument: New Form을 띄울 때 Argument값 Dialog, Open의 Argument 형식과 유사(a=b c=d 형식) strOpenStyle: 입력된 OpenStyle (resize=false closeflag = false 형식) Argument 형식과 유사 lleft: left ltop: top lwidth: Form의 width lheight: Form의 height pbHandledFlag: Event 처리 여부 plResult:생성된 Form의 Handle 값을 설정 후 리턴 | ||
Open | pDisp, strUrl, strArguement, strOpenStyle, lleft, ltop, lwidth, lheight, pbHandledFlag, plResult | Open으로 화면을 띄울 때 발생됩니다. Width, Height는 Form의 ClientArea 영역을 의미합니다. 실제로 Open 창을 띄울 때는 ClientArea의 Title, Border에 따라 전체 크기가 변경됩니다. (Script에서 Open 호출 시) MiPlatformP는 단독으로 쓰일수 없기 때문에 MiPlatformMX에서 사용한다는 가정하에서 제작 되었습니다. 이 때문에 3.2이전 버전에서는 일부 Key처리가 제대로 되지 않아 Open Event에서 MiPlatformMX를 포함하고 있는 Browser의 Open창을 띄우도록 권고하였습니다. 하지만 3.2이후버전에서는 Open Event에서 따로 처리하는 작업이 없을 경우에는 MiPlatormMX에서 Open창을 띄워 줍니다. 이때 Key처리의 문제가 해결되었습니다. |
pDisp: Event를 발생시킨 Component의 IDispatch strUrl: Open할 화면 URL(Prefix::화면 이름) strArguement: Argument (a=b c=d 형식) strOpenStyle: 입력된 OpenStyle(resize=false closeflag = false 형식) Argument 형식과 유사 lleft: left ltop: top lwidth: Form의 width lheight: Form의 height pbHandledFlag: Event 처리 여부 plResult:생성된 Form의 Handle 값을 설정 후 리턴 | ||
Dialog | pDisp, strUrl, strArguement, strOpenStyle, lleft, ltop, lwidth, lheight, pvarResult, pbHandledFlag | Dialog로 화면을 띄울 때 발생됩니다. . Width, Height는 Form의 ClientArea 영역을 의미합니다. 실제로 Dialog 창을 띄울 때는 ClientArea의 Title, Border에 따라 전체 크기가 변경됩니다. Dialog Event는 StartXML에 SessionURL이 있는 경우에 발생되며 SessionDialog를 처리할 때 사용합니다. 이 때 OpenStyle값은 SessionOpenStyle에 "Session=false, startxml=StartXML URL" 값이 더해집니다. (Script에서 Dialog 호출 시) MiPlatformP는 단독으로 쓰일수 없기 때문에 MiPlatformMX에서 사용한다는 가정하에서 제작 되었습니다. 이 때문에 3.2이전 버전에서는 일부 Key처리가 제대로 되지 않아 Dialog Event에서 MiPlatformMX를 포함하고 있는 Browser의 Dialog창을 띄우도록 권고하였습니다. 하지만 3.2이후버전에서는 Dialog Event에서 따로 처리하는 작업이 없을 경우에는 MiPlatormMX에서 Dialog창을 띄워 줍니다. 이때 Key처리의 문제가 해결되었습니다. |
pDisp: Event를 발생시킨 Component의 IDispatch strUrl: Dialog로 띄울 화면 URL(Prefix::화면 이름) strArguement: Argument (a=b c=d 형식) strOpenStyle: 입력된 OpenStyle(resize=false closeflag = false 형식) Argument 형식과 유사 lleft: left ltop: top lwidth: Form의 width lheight: Form의 height pvarResult:Dialog 종료시 리턴 값 pbHandledFlag: Event 처리 여부 | ||
JobCompleted | pDisp strReqID strServiceID strURL | MiPlatformX를 실행하기 위해 필요한 정보(StartXML, Resource, Dataset)가 모두 올라온 후에 발생됩니다 |
pDisp: Event를 발생시킨 Component의 IDispatch strReqID: TobeForm strServiceID: 전체 경로 strUrl: 전체 경로 | ||
ExitApplication | Application을 종료할 때 발생됩니다. (script에서 Exit 호출 시) | |
ArrangeWindow | pDisp strArrangeStyle | MDI인 경우에만 발생되며 MDI 창 정렬 시 발생됩니다.(script에서 arrangewindow 호출 시) |
pDisp: Event를 발생시킨 Component의 IDispatch strArrangeStyle: MDI 배열 Style | ||
EnableMenuItem | strID, bEnable | Enable 여부를 변경할 때 발생됩니다. (script에서 EnableMenuItem 함수 호출 시) |
strID: MenuItem의 ID bEnable: True/False | ||
GetPosition | strID, plValue | Script에서 해당 PositionID의 좌표값을 얻어오는 함수를 호출했을 때 발생됩니다. (Script에서 Window.Position을 받아오는 함수 호출 시) strID: Position ID plValue: Position |
SetPosition | strID, lValue | strID: Position ID lValue: Position |
Script에서 해당 Position ID의 좌표값을 설정하는 함수를 호출했을 때 발생됩니다. (Script에서 Window.Position을 받아오는 함수 호출 시) | ||
SetWindowPosition | lLeft, lTop, lWidth, lHeight | Script에서 해당 윈도우의 Position을 변경할 때 발생됩니다. 강제로 WindowPosition을 바꿀 때는 Width, Height 정보를 ClientArea 영역의 Border, Title, Status 부분을 고려하여 설정합니다. |
lleft: left값 ltop: Top값 lwidth: Width 값 lheight: Height 값 | ||
GetPlatformInfo | strType, strSubType, pstrRetVal | Script에서 Platform 정보를 얻어오는 함수를 호출했을 때 발생됩니다. (argument는 GetPlatformInfo 함수 참고) |
strType: Platform에서 제공되는 정보 Type strSubType: Platform에서 제공되는 정보 Type의 SubType pstrRetVal: 해당되는 값을 return | ||
GetTitle | pstrRetVal | Script에서 Title 값을 받을 때 발생됩니다. |
pstrRetVal: 현재 Title의 값 | ||
SetTitle | strTitle | Title 값이 변경되었을 때 발생됩니다. |
strTitle: Title값 | ||
UserNotify | lNotifyID, strMsg | 사용자가 정의한 메시지를 발생시킬 때 (Script에서 UserNotify 호출 시) |
lNotifyID: Script에서 발생시킨 NotiftID strMsg: Script에서 발생시킨 메시지 | ||
ChangedGlobalInfo | strType, strValue | Global 속성 중에서 변경하는 항목이 생긴 경우 발생됩니다. (script에서 ChangedGlobalInfo 호출 시) |
strType: 변경된 Global 속성 Type strValue: 변경된 Global 속성값 | ||
BeforeExitApplication | pbExitFlag | MiPlatformP의 BeforeExit()함수를 호출하거나 Script에서 Exit()함수를 호출한 경우에는 가장 먼저 발생하는 Event입니다. MiPlatformP와 연계된 MiPlatformMX에서 종료작업을 진행한 후 마지막 종료할때에는 MiPlatformP의 ExitApplication Event가 발생합니다. 내부적으로 MiPlatformP의 ExitApplication은 MiPlatformMX의 Event로 발생합니다. 3.2이후버전에서 추가된 기능입니다. |
pbExitFlag:Exit할지 여부를 설정 | ||
AddFrame | pDisp bstrID bstrInitURL nLeft nTop nWidth nHeight strAlign nIndex nSubIndex strStyle pHandledFlag plResult | Script에서 AddFrame Api 호출 시(DockBar를 띄울 때)발생됩니다. Width, Height는 Form의 ClientArea 영역을 의미합니다. |
pDisp: Event를 발생시킨 Component의 IDispatch strID: Form의 ID strInitUrl: 화면 URL(Prefix::화면 이름) nleft : left ntop : top nwidth: Form의 width nheight: Form의 height strAlign:DockBar의 초기 Docking위치 nIndex:DockBar가 생성될 때 초기 위치 nSubIndex:DockBar가 생성될 Index값에서의 Sub Posiotin값 strStyle: Frame을 띄울 때 설정할 수 있는 option 정보 각 값에 대한 구분은 공백으로 하며, 값은 id=value 의 형태로 입력합니다 pbHandledFlag: Event 처리 여부 plResult:생성된 Form의 Handle 값을 설정 후 리턴 | ||
AddFrameEx | pDisp bstrID bstrStartXML bstrSessionUrl bstrInitURL nLeft nTop nWidth nHeight strAlign nIndex nSubIndex strStyle pHandledFlag plResult | Script에서 AddFrameEx Api 호출 시(DockBar를 띄울 때)발생됩니다. Width, Height는 Form의 ClientArea 영역을 의미합니다. |
pDisp: Event를 발생시킨 Component의 IDispatch strID: Form의 ID strStartXMLUrl: 다른 StartXML의 Form을 사용할 때 StartXML 경로 strSessionUrl: SessionURL이 있는 경우 Session 경로 strInitUrl: 화면 URL(Prefix::화면 이름) nleft : left ntop : top nwidth: Form의 width nheight: Form의 height strAlign:DockBar의 초기 Docking위치 nIndex:DockBar가 생성될 때 초기 위치 nSubIndex:DockBar가 생성될 Index값에서의 Sub Posiotin값 strStyle: Frame을 띄울 때 설정할수 있는 option 정보 각 값에 대한 구분은 공백으로 하며, 값은 id=value 의 형태로 입력합니다 pbHandledFlag: Event 처리 여부 plResult:생성된 Form의 Handle 값을 설정 후 리턴 |
MiPlatformP의 사용예
MiPlatformP 예제는 Visual Basic에서 구현되었습니다.
1~4 라인: Visual Basic에서 MiPlatformP를 하나 생성하고 MiPlatformP의 JobCompleted Event를 처리합니다. Event 내에서는 MiPlatformP에서 제공되는 GetStartXML()함수를 호출합니다.
6~11 라인: StartXML에 SessionURL이 있는 경우 MiplatformP1_Dialog Event가 발생되며 Session Dialog를 직접 처리합니다. SessionDialog에서는 MiPlatformP의 InitSession()함수를 호출해서 session을 처리합니다.
다음은 간단한 샘플 코드로 MDI일 경우에만 사용할 수 있습니다.
Private Sub MiplatformP1_JobCompleted(ByVal pDisp As Object, ByVal bstrReqID As String, ByVal bstrServiceID As String, ByVal bstrUrl As String) MsgBox MiplatformP1.GetStartXML(MiplatformX1.Key) MsgBox bstrServiceID End Sub Private Sub MiplatformP1_Dialog(ByVal pDisp As Object, ByVal bstrUrl As String, ByVal Arguement As String, ByVal OpenStyle As String, ByVal left As Long, ByVal top As Long, ByVal width As Long, ByVal height As Long, pbstrResult As Variant, pHandledFlag As Boolean) pHandledFlag = True pbstrResult = "true" Dim Dlg As New Dialog Dlg.Show vbModal End Sub
CyAxDom
CyAxDom은 XML Dom 접근 방법을 제공하는 ActiveX입니다.
MiPlatformX, MiPlatformP, MiPlatformMX의 return값 중 하나로 사용됩니다. 예를 들어 메뉴 정보를 받아 개발 환경에 맞게 메뉴를 구성할 수 있습니다.
ActiveX로 UNICODE 버전과 ANSI 버전이 있으며 기능은 서로 같습니다. 두 가지 버전을 동시에 설치할 수도 있습니다.
CyAxDom의 CLSID
버전 | CLSID |
---|---|
UNICODE | {8C23C1F9-E7BC-4B8B-A909-8F77AA2B36B2} |
ANSI | {CE02CC26-C962-4A89-BF8A-53C260DED2D2} |
CyAxDom의 Property/Method/Event
Property
Property 이름 | 입력값/형태 | 설명 | SET/GET 여부 | 필수 여부 |
---|---|---|---|---|
TagName | String | Tag Name | G | X |
AttributeCount | Long | Attribute Count | G | X |
ElementCount | Long | Element Count | G | X |
Method
Method 이름 | Parameter | return | 설명 | 예시 |
---|---|---|---|---|
Attribute | lIdx | String | Index에 해당하는 Attribute값을 받아옵니다. | AxDom. Attribute (); |
lIdx : Index값. | ||||
NamedAttribute | strAttrID | String | 특정 이름의 Attribute값을 받아옵니다. | AxDom. NamedAttribute (MiPlatformMX. StartXML, "aa", "bb"); |
strAttrID : Attribute 이름 | ||||
Element | lIdx | IDispatch* | Index에 해당하는 Element를 받아옵니다. | AxDom.Element(0); |
lIdx : Index값 |
CyAxDom의 사용예
CyAxDom 예제는 Visual Basic에서 구현되었습니다
다음은 간단한 샘플 코드로 MDI일 경우에만 사용할 수 있습니다.
Visual Basic에서 MiPlatformP를 하나 생성한 후 MDIInfo Event를 처리하는 샘플입니다.
Private Sub MiplatformP1_MDIInfo(ByVal ICyDom As Object) Dim CyDom As MIPLATFORMXLib.CyAxDom Set CyDom = ICyDom Dim nCnt, nSubCnt As Integer Dim i As Integer Dim AttrStr As String nCnt = CyDom.ElementCount AttrStr = CyDom.TagName For i = 0 To nCnt - 1 Dim SubEle As MIPLATFORMXLib.CyAxDom Set SubEle = CyDom.Element(i) nSubCnt = SubEle.ElementCount MsgBox SubEle.Attribute(0) Next i End Sub
MiUpdater
MiUpdater란
MiUpdater란 MiPlatform를 사용하기 위한 모듈을 배포하고 버전을 관리하는 프로그램입니다.
MiUpdater는 MiInstaller(MiInstlr331.dll)라는 실제 핵심 동작을 하는 ActiveX 모듈과 MiUpdater(MiUpdater331.exe)라는 UI를 담당하는 EXE모듈이 있습니다. 또한 필요에 의해 Windows용 Cab 설치를 보조하기 위한 CyInstlr.exe가 포함되어 있습니다.
CyInstlr.exe에 대해서는 별도로 설명하지 않습니다.
MiUpdater의 UI는 일정한 수준 내에서 사용자에 의해 맞추어 사용할 수 있으며, MiInstaller를 사용해 업데이트 프로그램을 제작 사용할 수 있습니다.
MiUpdater의 구성
MiInstaller
웹 또는 이미 개발된 Application에서 MiPlatform에 필요한 파일을 배포하고 버전을 관리하는 ActiveX입니다.
MiInstaller에서 Update Info File 및 Updat eList File을 다운로드 하여 사용자 장치에 저장된 버전정보(Update Info File, Update List File)와 비교를 수행합니다. 또한 비교 결과를 바탕으로 배포 작업을 수행합니다. 마지막으로 설치된 상태를 다시 버전 정보파일로 사용자 장치에 기록하게 됩니다.
* 버전 정보를 저장하는 공간은 MiPlatform의 버전에 따라 다르게 관리됩니다. MiPlatform 3.3 UNICODE버전의 경우 "%USERAPP%\TOBESOFT\MiPlatform330U\Ver\"가 해당 위치가 됩니다. 파일명은 서버의 버전 정보 파일의 URL을 Hash로 변경하여 저장하기 때문에 중복되지 않습니다.
MiInstaller 3.31은 MiInstaller 3.3에서 보안 문제를 수정한 버전입니다. 관련 기능에 대한 문의는 고객지원부를 통해 주시길 바라며, 기존 기능을 유지하고 싶으신 분은 MiInstaller 3.3를 계속 이용하실 수 있습니다.
MiInstaller의 CLSID
버전 | CLSID |
---|---|
MiInstaller 3.3 | {1A000B1F-B285-4fbf-B3CD-B50845003EBA} |
MiInstaller 3.31 | {1A000B1F-B285-4fbf-B3CD-B50845003EBB} |
MiInstaller의 Property/Method/Event
Property, Method, Event를 설명할 때 사용할 전제에 대한 설명합니다.
대상 버전은 별도로 표기하지 않는한 3.3 UNICODE버전 Windows용으로 가정합니다.
MiPlatform이라고 하면 전용 Browser 실행 파일을 의미합니다.( 3.3 UNICODE 버전이라면MiPlatform330U.exe )
MiSimulator라고 하면 개발자용 Browser 실행 파일을 의미합니다.( 3.3 UNICODE 버전이라면MiSimulator330U.exe)
Property
R(Registry)이 선택된 Property는 설정값을 정하지 않는 경우, Property 설정값으로 Registry에 있는 값이 사용됩니다. Registry값은 Key에 해당되는 Registry값이 우선으로 적용되며, Key에 해당되는 Registry값이 없는 경우에는 Settings의 Registry값이 적용됩니다. Registry에도 값이 없는 경우에는 각 항목별 Default값이 적용됩니다. R(Registry)가 설정된 Property는 레지스트리에 설정값이 자동으로 기록됩니다.
MiPlatform이 실행될 때 참고하는 Registry 위치는 부록을 참고하십시오.
U:MiUpdater, P:MiPlatform, R:Registry (굵은글씨는 필수값)
Property | default | U | P | R | Data Type | SET/ GET 여부 | 설명 |
---|---|---|---|---|---|---|---|
DeviceType | WIN32(PC용) CE(PDA용) | ○ | STR | S/G | 배포 대상이 되는 장치를 지정하는 값. PDA에서는 CE만을 허용 합니다. DeviceType의 값에 따라 설치 경로, 실행 정보등이 변경 됩니다. WIN32U : MiPlatform UNICODE 버전 WIN32: MiPlatform ANSI버전 SIMU : MiSimulator UNICODE버전 SIM : MiSimulator ANSI버전 CE: PDA용 MiPlatform | ||
Version | 3.0 | ○ | STR | S/G | MiPlatform의 제품 버전 ( 3.0, 3.1, 3.1L, 3.11, 3.2, 3.3) MiPlatform 3.x버전에 대해 지원합니다. 대상이 되는 파일의 경로, 실행시 설정값등이 Version에 따라 설정됩니다. | ||
Key | ○ | ○ | ○ | STR | S/G | MiPlatform으로 운영할 서비스의 Key. Key값은 MiPlatform으로 특정 서비스를 접근할 때 필요한 모든 기본 정보의 저장소를 구분하기 위한 값 입니다. (StartXML, ComponentPath등 대부분의 정보가 Registry에 저장됨.) | |
SiteKey | ○ | ○ | STR | S/G | 고객사별 Key값 중복을 방지하기 위한 고유값. 당사(TOBESOFT)에서 발급됩니다. Site별 Key로 SiteKey가 있는 경우 사용하게 되면 Registry의 Key값이 생성될 때 반영됩니다. 주로 회사 외부로 공개되는 서비스 사이트를 개발할 때 사용됩니다. | ||
UpdateURL | ○ | ○ | STR | S/G | Update Info File의 URL. 배포 작업을 위해 UpdateURL이 필요합니다. 입력하지 않는다면 기존에 설정된 값을 사용합니다.(Registry에 보관됨) | ||
StartXML | ○ | ○ | ○ | STR | S/G | MiPlatform에서 사용할 StartXML의 URL 또는 파일 경로. MiPlatform구동을 위해 필수적인 값 입니다. 입력하지 않는다면 기존에 설정된 값을 사용합니다.(Registry에 보관됨) | |
ComponentPath | "" | ○ | ○ | ○ | STR | S/G | MiPlatform용 Component의 경로. Alias를 사용해 입력할 수 있습니다. 단, Alias로 %COMPOENT%는 사용하지 않아야 합니다. MiPlatform의 Component경로는 고객사 별로 설정할 것을 권장 합니다. Windows VISTA의 OS에서의 권한문제를 해결 하기 위해서는 %USERAPP%하위의 경로로 설정해야 합니다. (ex) %USERAPP%\TOBESOFT\MiPlatform330U\Component\ Alias에 대한 항목은 "7.2 MiUpdater에서 사용하는 Alias 목록"을 참고하십시오. |
Left | -1 (Center) | ○ | ○ | ○ | LONG | S/G | MiPlatform을 구동 할 때 좌측의 좌표. 입력하지 않는다면 기존에 설정된 값을 사용합니다.(Registry에 보관됨) |
Top | -1 (Center) | ○ | ○ | ○ | LONG | S/G | MiPlatform을 구동 할 때 상단의 좌표. 입력하지 않는다면 기존에 설정된 값을 사용합니다.(Registry에 보관됨) |
Width | 800 | ○ | ○ | ○ | STR | S/G | MiPlatform을 구동 할 때 넓이. 숫자 또는 "max"를 사용할 수 있습니다. "max"를 지정하면 전체 화면으로 인식합니다. 입력하지 않는다면 기존에 설정된 값을 사용합니다.(Registry에 보관됨) |
Height | 600 | ○ | ○ | ○ | STR | S/G | MiPlatform을 구동 할 때 높이. 숫자 또는 "max"를 사용할 수 있습니다. "max"를 지정하면 전체 화면으로 인식합니다. 입력하지 않는다면 기존에 설정된 값을 사용합니다.(Registry에 보관됨) |
OnlyOne | False | ○ | ○ | ○ | BOOL | S/G | MiPlatform을 Key와 Version당 하나만 구동 되도록 할지 여부, MiPlatform 전용 브라우저를 사용하는 경우에만 적용됩니다. 개발자용 브라우저에서는 무시합니다. 입력하지 않는다면 기존에 설정된 값을 사용합니다.(Registry에 보관됨) |
Resource | ○ | ○ | ○ | STR | S/G | MiPlatform에서 사용되는 Resource 파일 경로. 파일 이름만 있는 경우에는 ComponentPath경로에서 파일을 찾습니다. MiPlatform의 Resource는 XML형태로 제작된 정보 값입니다. 입력하지 않는다면 기존에 설정된 값을 사용합니다.(Registry에 보관됨) | |
GlobalVal | ○ | ○ | ○ | STR | S/G | MiPlatform과 연동 작업을 위해 할당된 변수. MiPlatform에서 "GetReg()" API를 사용해 접근이 가능합니다. 입력하지 않는다면 기존에 설정된 값을 사용합니다.(Registry에 보관됨) | |
Launch | True | ○ | BOOL | S/G | Update를 실행한 후 MiPlatform의 실행 여부 MiInstaller에서는 사용하지 않습니다. Run()메소드와 연관 됩니다. | ||
ReInstall | False | ○ | BOOL | S/G | 기존의 배포 상태를 무시할지 여부. ReInstall이 TRUE로 설정되면 기록된 버전 정보 파일을 무시 합니다. 그러나 "system::"을 사용 했다면 기존에 설치되어 있는 파일을 참조할 가능성이 있습니다. | ||
UResource | "" | ○ | ○ | STR | S/G | MiUpdater가 사용한 Resource 파일경로. MiUpdater의 입력 인자 중 -URES를 참조 하십시오. 입력하지 않는다면 기존에 설정된 값을 사용합니다.(Registry에 보관됨) | |
UpdateHandle | ○ | STR | S/G | MiPlatform이 실행될 때 Destroy하는 MiUpdater의 Handle. MiUpdater를 사용하는 경우에만 사용됩니다. | |||
VersionLocalFile | STR | G | MiInstaller가 현재 작업중인 버전 정보 파일의 파일명. 각 Event에서 메시지 출력 또는 확인을 위해 사용됩니다. | ||||
ErrorCode | LONG | G | 실행 중에 발생된 오류 코드값. | ||||
ErrorMsg | STR | G | 실행 중에 발생된 오류 코드에 해당하는 메시지 문자열 | ||||
Retry | 2 | ○ | ○ | ○ | LONG | S/G | MiPlatform에서 통신 연결 재시도 할 횟수. 입력하지 않는다면 기존에 설정된 값을 사용합니다.(Registry에 보관됨) |
TimeOut | 30 | ○ | ○ | ○ | LONG | S/G | MiPlatform에서 통신 연결 대기시간(초). 입력하지 않는다면 기존에 설정된 값을 사용합니다.(Registry에 보관됨) |
PreVersionCompare | False | ○ | ○ | BOOL | S/G | Update Info File의 버전과 Update Info File에 설정된 Update List File의 버전 비교 여부. 통신 사용량에 민감한 PDA에서 주로 사용되는 기능이며, PreVersion Compare를 사용시 Update Info File의 세심한 관리가 필요합니다. ExistVersionUpCnt() 함수 또는 StartDownlaod()를 호출하기 전에 설정 해야 합니다. Update Info File만을 받는 것으로 업데이트 여부를 확인할 수 있습니다. | |
StartImage | ○ | ○ | ○ | STR | S/G | MiPlatform용 Splash화면에 표시될 이미지 파일의 경로. Splash 화면은 MiPlatform에서 StartXML을 로딩하기 전까지 표시됩니다. 기본적으로 MiPlatform의 내장 이미지가 사용되며, 별도로 지정시 해당 이미지가 사용됩니다. 지정된 Image의 크기에 맞도록 splash화면의 크기가 변경 됩니다. 경로는 %alias%형태로 입력할 수 있습니다. Alias에 대한 항목은 "7.2 MiUpdater에서 사용하는 Alias 목록 "을 참고하십시오. 입력하지 않는다면 기존에 설정된 값을 사용합니다.(Registry에 보관됨) | |
Scroll | False | ○ | ○ | ○ | BOOL | S/G | MDI에서 MDI Client영역(바탕화면)에 Scroll 사용 여부. SDI에서는 지원되지 않습니다. 입력하지 않는다면 기존에 설정된 값을 사용합니다.(Registry에 보관됨) |
UBKImage | ○ | ○ | STR | S/G | MiUpdater의 배경화면 Image MiUpdater의 "-BI"를 사용하십시오. | ||
NotLaunchForErr | False | ○ | BOOL | S/G | 에러가 발생했을 때 MiUpdater에서MiPlatform 실행 여부. MiUpdater를 사용할 경우만 이용됩니다. MiUpdater의 "-NLE"옵션을 참고 하십시오. | ||
UpdateKillMiplatform | CONFIRM | O | STR | S/G | MiInstaller가 배포 작업을 시작할 때 대상버전의 MiPlatform을 어떻게 처리 할지 여부와 업데이트 도중 복사에 실패한 File의 처리 방법을 결정하는 Property입니다. (Version 2 확장 객체부터 사용가능합니다.) 이 기능은 MSI형태의 패키지에는 적용되지 않으며 MSI형태의 패키지는 MSIEXEC의 기능에 따라 동작합니다. CONFIRM : 기본값. Update시작 시점에서 OnConfirm을 발생하며 2번째 인자의 값에 따라서 대상 버전의 MiPlatform을 강제 종료하거나, 무시하고 진행합니다. KILL : Update 시작 시점에서 OnConfirm을 발생하지 않고, 대상 버전의 MiPlatform을 강제 종료 하고 진행합니다. NOKILL : Update 시작 시점에서 OnConfirm을 발생하지 않고, 대상 버전의 MiPlatform을 종료하지 않고 진행합니다. 또한 중간에 복사에 실패한 경우 재 부팅후 복사가 진행되도록 조치후 진행합니다. ( NLE옵션을 TRUE로 주는 경우 NOKILL이면서 복사에 실패한 기록이 있다면 MiPlatform이 Launch되지 않습니다.) CONFIRMONFAILED : Update시작 시점에서 OnConfirm을 발생하지 않고, 대상 버전의 MiPlatform을 종료하지 않고 진행합니다. 단, 복사에 실패한경우 대상 File과 관련 Process를 출력하여 사용자에게 처리 방법을 질의 합니다.(질의 전에 OnConfirmEx이벤트가 발생하게 됩니다.) | ||
EventReturn | O | VARIANT | S/G | Event에서 Return값을 처리하기 위해 사용하는 임시 변수 입니다. (Version 2 확장 객체부터 사용가능합니다.) 입력 값의 종류 및 내용은 각 Event를 참조하십시오. cf) OnConfirmEx |
Method
Method | Data Type | Parameter | Description |
---|---|---|---|
AddAlias | Void | strAliasID, strDefaultURL strDeviceType | Not USE. (내부적으로만 사용됨) |
StartDownload | Void | MiInstaller에 배포 작업을 하도록하는 함수. MiInstaller는 해당 명령을 받으면 배포를 시작하게 됩니다. StartDownload()는 Blocked Call 이므로 작업 완료전까지 Return하지 않습니다. | |
Stop | Void | 다운로드를 멈추는 함수. | |
Run | Void | 전용 브라우저를 실행하는 함수. DeviceType 및 Version에 따라 실행할 전용 브라우저가 자동으로 선택됩니다. | |
ParseMPLFile | Void | strMPLFile | Not USE (내부적으로만 사용됨) |
ExistVersionUpCnt | BOOL | 배포 필요성을 확인하는 함수. 배포가 필요하다면 TRUE가 return되며, 배포할 대상이 없다면 FALSE가 return됩니다. PerVersionCompare Property에 따라 동작이 달라질 수 있습니다. OnStartDownLoad와 OnEndDownload를 발생합니다. 통상적으로 True인 경우 StartDownload()를 실행하고 False인경우 페이지 전환 또는 Run()을 실행 하도록 스크립트를 작성합니다. | |
MakeShortCut | void | strExeName, strCommand, strShortcutName, strIConPath, strPos, | 바로가기를 사용자 장치에 생성하는 함수. |
strExeName: 바로가기의 대상이 되는 실행 파일명. 경로를 포함하여 입력해야 합니다. alias형태를 사용 가능합니다. strCommand: 대상 실행 파일이 실행될 때 입력될 인자값. strShortcutName: 바로가기 이름. strIConPath: 바로가기의 아이콘 파일. Windows에서 허용하는 파일(.ico, .dll, .exe)을 사용할 수 있으며 여려개의 이미지가 있다면 첫번째 아이콘이 사용됩니다. 전체 경로를 입력해야 되며, alias형태의 경로를 사용 할 수 있습니다. strPos: 바로가기가 생성될 위치. 다음 4가지 예약어가 사용 가능합니다. Startmenu -시작메뉴 desktop -바탕화면(Default) StartUp - 모든 프로그램에 시작 프로그램 Programs - 모든 프로그램 예약어로 제외한 경로 이외에는 사용이 불가합니다. 키워드의 하위경로에 바로가기를 생성하기 위해서는 "예약어:하위경로"의 입력할 수 있습니다. ex) "Programs:MiPlatform\Demo" Alias는 "7.2 MiUpdater에서 사용하는 Alias 목록"을 참고하십시오. | |||
Reserved | bstrID, varArgs pvarOutput pvarRet | 차후 사용될 확장 기능을 위한 예약 함수. 현재는 기능이 없습니다. (Version 2 확장 객체부터 사용가능합니다.) | |
IsUACEnabled | BOOL | Void | Windows VISTA의 UAC옵션 상태를 확인하는 함수. True가 되돌려진경우 Windows VISTA의 UAC기능이 설정되어 있습니다. False 가 되돌려진경우 Windows VISTA가 아니거나, Windows VISTA의 UAC기능이 해제되어 있는 경우 입니다. (Version 3확장 객체부터 사용 가능합니다.) |
IsElevatedProcess | BOOL | Void | Windows VISTA에서 UAC옵션 활성시 현재 Process가 관리자 권한 획득 여부를 확인하는 함수. True가 되돌려진경우 Windows VISTA에서 관리자 권한을 획득한 상태 입니다. False 가 되돌려진경우 Windows VISTA가 아니거나, Windows VISTA에서 관리자 권한을 획득하지 않은 상태 입니다. 관리자 권한 획득한 경우(IsElevatedProcess = true) 1. 사용자 id가 Administrator인 경우. 2. 관리자권한 계정으로 로긴하여 process기동시‘관리자권한획득실행’을 했을 경우 (Version 3확장 객체부터 사용 가능합니다.) |
IsMiPlatformRunning | BOOL | Void | 데이트 대상 버전의 MiPlatform의 Process가 있는지 여부를 확인하는 함수. True가 되돌려진 경우, MiPlatform이 실행중인 상태 입니다. 다만, 업데이터에서 실행중인 Process의 Key가 현재 대상 Key와 일치여부를 확인하지 않습니다. False가 되돌려진 경우 MiPlatform이 실행중인 상태가 아닙니다. Windows VISTA에서 관리자 권한으로 실행된 MiPlatform에 대해서는 기능이 정상 동작하지 않을 수 있습니다. (Version 3확장 객체부터 사용 가능합니다.) |
AliasToRealPath | String | strAliasPath | Alias로 되어 있는 경로의 실제 경로값을 구하는 함수. Alias로 되어 있는 파일경로를 실제 파일 경로로 변경합니다. 다만 사용전에 Device/Version등을 설정해야 정상적으로 변환이 가능합니다. (Version 3확장 객체부터 사용 가능합니다.) |
strAliasPath : Alias로 설정된 경로 ex) %UserApp%TobeSoft\Demo\ MiUpdater에서 사용가능한 모든 Alias에 대해 해당 기능을 지원합니다. Alias는 "7.2 MiUpdater에서 사용하는 Alias 목록"을 참고하십시오 | |||
IsAdministratorsGroup | BOOL | Void | 현재 실행하는 프로세스의 계정이 Admin 권한으로 실행되고 있는지 검사합니다. Vista의 경우 권한 상승의 과정이 있을 경우 상승 전에는 FALSE, 상승 후에는 TRUE의 값을 얻게 됩니다. (Version 3확장 객체부터 사용 가능합니다.) |
Event
Event | parameter | Occurs |
---|---|---|
OnError | DownFileName ErrorCode ErrorMsg | MiInstaller에서 배포 작업 중 에러가 발생한 시점에서 발생하는 Event. |
DownFileName: 에러 발생 시 DownFileName ErrorCode: 실행 중 에러 코드 ErrorMsg: ErrorCode에 해당하는 메시지 | ||
OnStartDownLoad | ConfigFileName DownFileName Type TotalCnt CurIndex(0부터시작) | MiInstaller에서 작업시작을 알리는 Event. Type에 따라 작업의 내용이 달라 집니다. |
ConfigFileName: 처리중인 버전 정보 파일의 이름. (Update Info File 또는 Update List File의 이름.) DownFileName: 처리중인 파일의 이름 이름 Type: 작업의 형태.(숫자로 출력됨) 1 : EVENTCONFIG : 배포 작업 시작 2 : EVENTGETVERSIONCNT : 버전 정보 비교 시작 3 : EVENTDOWNLOAD : 설치 대상 파일 다운로드 시작 4 : EVENTDISTRIBUTE : 설치 작업 진행 시작 TotalCnt: 전체 작업 예정 개수 CurIndex: 작업목록에서 작업중인 파일의 Index. | ||
OnEndDownLoad | ConfigFileName DownFileName Type TotalCnt CurIndex(0부터 시작) | MiInstaller에서 작업끝을 알리는 Event. |
ConfigFileName: 처리중인 버전 정보 파일의 이름. (Update Info File 또는 Update List File의 이름.) DownFileName: 처리중인 파일의 이름 이름 Type: 작업의 형태.(숫자로 출력됨) 1 : EVENTCONFIG : 배포 작업 종료 2 : EVENTGETVERSIONCNT : 버전 정보 비교 완료 3 : EVENTDOWNLOAD : 설치 대상 파일 다운로드 완료 4 : EVENTDISTRIBUTE : 설치 작업 진행 완료 TotalCnt: 전체 작업 예정 개수 CurIndex: 작업목록에서 작업중인 파일의 Index. | ||
OnConfirm | bReBoot pbRet | 배포 작업중에 전용 브라우저가 실행되고 있다면 발생하는 이벤트. UpdateKillMiplatform Property에 따라 발생 시점이 변경됨. ( UpdateKillMiplatform을 참조하십시오.) |
bReBoot: 다운로드할 파일이 실행 중 (항상 TRUE가 됩니다.) pbRet: Return값. true면 해당 파일을 자동 종료하고 다운로드 진행 false면 해당 파일을 자동 종료하지 않고 다운로드 진행
| ||
OnProgress | DownFileName Progress progressMax StatusText | 파일 다운로드 진행 상태를 알려주는 Event. |
DownFileName: 현재 다운로드하는 파일 이름 Progress: 다운로드 진행 상태 값(숫자) ProgressMax: 다운로드 진행 상태의 최대값(숫자) StatusText: 상태 정보 (문자열) | ||
OnConfirmEx | Type varInfo pbstrMsg | MiInstaller가 사용자에게 질의할 문제가 있는경우 발생하는 Event입니다. (Version 2 확장 객체부터 사용발생합니다.) |
Type : 질의할 항목. ( 문자열 ) varInfo : 추가적인 정보. ( 임의의 형태, Type에 따라 변경됨) pbstrMsg : 질의 메시지. pbstrMsg를 변경하여 되돌리면 그 메시지로 MiInstaller에서 대신 질의하게 됩니다. OnConfirmEx의 처리 결과를 EventReturn에 설정하면 그 값에 따랏 별도의 질의 없이 진행하게 됩니다. 각 값의 의미와 내용은 다음표를 참조하십시오. Type 설명 KILL 복사중 실패하여 일부 프로그램을 종료해야 하는 상황에 발생함. varInfo는 종료되어야 하는 프로그램의 목록이 배열로 입력됩니다. EventReturn으로 2, 6, 7이 입력 가능하며, 6이면 해당 프로그램을 강제 종료후 진행, 7은 종료하지 않고 진행(단, 재부팅시 복사함), 2는 업데이트 실패로 진행됩니다. EventReturn이 없거나 다른 값인경우 2로 간주됩니다. | ||
OnReservedEvent | Event varArg | 앞으로 추가될 이벤트를 위한 Interface로 현재는 기능이 없습니다. (Version 2 확장 객체부터 사용발생합니다.) |
MiInstaller 사용해서 Update하는 예시 (HTML에서 바로 Update를 하는 예시)
Launch File(HTML)을 이용한 경우로써, 배포 방법1, 배포 방법2가 여기에 속합니다.
배포 방법1의 Launch File을 발췌하여 설명합니다.
29~37 라인: MiInstaller 생성 및 초기화 부분.
MiInstaller를 생성하는 시점에서 DeviceType, Version, Key가 입력 될 수 있도록 작성해 주십시오.
16~25 라인: MiInstaller에서 배포 작업을 수행하는 부분.
MiInstaller의 ExistVersionUpCnt()를 통해 배포 대상이 있는 지 확인 후, 배포 또는 페이지 이동을 하도록 작성 되어 있습니다.
5~14 라인: MiInstaller의 이벤트를 처리해 부가적인 동작을 하는 부분.
OnEndDowload에서 Type이 EVENTCONFIG(1)인 이벤트를 처리하여 배포 완료시 페이지 이동을 하도록 처리되어 있습니다.
<HTML> <HEAD> <TITLE> 배포 방법 1의 예제</TITLE> <META http-equiv="Content-Type" content="text/html; charset=euc-kr"> <SCRIPT language="JavaScript" type="Javascript/text" for="MiInstlr" event="OnEndDownLoad(VersionFileName,DownFileName,Type,TotalCnt,CurIndex)" > if ( Type == 1 ) // EVENTCONFIG { //TotalVersionFileCnt = TotalCnt; alert("Install Completed !! "); // MiPlatform 뷰어가 포함된 HTML 페이지로 이동 window.location = "./MiPlatformView.html"; } </SCRIPT> <SCRIPT language="JavaScript" type="JavaScript/text"> function fnonload() { var bIsNeedUpdate = MiInstlr.ExistVersionUpCnt(); if ( bIsNeedUpdate ) MiInstlr.StartDownload(); else { // 배포 대상이 없으므로 MiPlatform 뷰어가 포함된 HTML 페이지로 이동 window.location = "./MiPlatformView.html"; } } </SCRIPT> </HEAD> <BODY onload="fnonload"> <SCRIPT language="JavaScript" type="Javascript/text" src="./MiInstlr.js"></SCRIPT> <SCRIPT language="JavaScript" type="Javascript/text" > CreateMiInstlr("./MiUpdater331.cab","2009,4,1,1","MiInstlr", "WIN32U","3.3","Demo"); MiInstlr.Launch = false; MiInstlr.UpdateURL = "http://your.site.com/site/update/update-info-file.xml"; MiInstlr.StartXML = "http://your.site.com/site/key/StartXML.xml"; MiInstlr.Componentpath = "%UserApp%\\Company\\KeyName\\Component"; </SCRIPT> </BODY> </HTML>
MiUpdater
MiUpdater는 MiInstaller를 독립적인 Application의 형태로 사용하기 위한 프로그램입니다.
MiUpdater는 MiInstaller를 사용하므로 MiInstaller의 기능을 대부분 사용할 수 있습니다.
(MakeShortcut과 같이 일부 Method처리가 불가능한 부분은 제외됨)
MiUpdater는 UI가 기본적으로 지정되어 있으나, 당사에서 제시한 형태의 Update Resource(DLL형태)를 제작하거나, 옵션을 통해 이미지를 변경하여 사용할 수 있습니다.
PDA용 MiUpdater에는 전화 접속 처리 등, 일부 부가 기능이 제공 됩니다.
MiUpdater의 인자값 - 인자 입력 방법1
MiUpdater를 사용하기 위해서는 MiUpdater의 기본 동작 및 대상 MiPlatform 버전을 특정해 주어야 합니다. 인자는 이러한 값을 MiUpdater에 전달하는 값입니다.
인자값은 "-"로 구분되는 인자의 구분 값과 인자값을 쌍으로 해서 입력가능합니다.
Ex) ...\MiUpdater331.exe -R FALSE -L TRUE -D WIN32U -V 3.3 -K Demo
바로가기 ICON에 입력할 수 있는 인자를 정리하면 다음 [표 5-21]와 같습니다.
다음 5개의 인자를 입력하지 않으면, 정상 동작하지 않습니다.
-L : Lauch -R : Reinstall -D : DeviceType -V : Version -K : Key
각각의 의미와 입력값은 [표 5-21]을 참조 하십시오.
파라미터들의 자세한 설명은 MiInstaller의 Property를 참고합니다.
PDA의 경우 Updator를 이용하여 실행 시킬 때 문자열 길이 265바이트에 대해 제약사항이 발생합니다.
파라미터들의 길이의 총합이 265바이트를 넘는 경우 뒷문자들이 무시됩니다.
해결방법은 각각의 파라미터들과 연계되어 있는 Registry값을 사용자가 입력 후 사용하는 방법입니다. 문자열이 짤려서 잘못된 값을 넘겨주는 경우 정상적인 동작이 안될 수도 있습니다. 하지만 이 같은 경우 Registry에 값이 등록되어 있다면 이값을 이용하게 됩니다.
Registry 정보는 MiInstaller의 Property를 참고합니다.
(굵은글씨는 필수 옵션, 옵션 이름은 MiInstaller와 대응 됩니다.)
(입력 Argument 설명) | 입력값 | 설명 | |
---|---|---|---|
Option | 옵션 이름 | ||
프로그램 이름 | C:\WINNT\system32\ MiUpdater331.exe | %SYSTEM%MiUpdater331.exe (바로가기 만들기로 생성할 때 사용) | |
-L | Launch | True / False | 배포 작업 완료 시점에 전용 브라우저를 구동할지 여부. Update될 Device와 Version에 따라 각각 다른 파일이 실행됩니다. MiInstaller의 Run()메소드를 사용하므로 실행에 대해서는 MiInstaller의 Run()메소드를 참조 하십시오. 동작 방식을 지정하는 값이므로 필수로 입력해야 합니다. MiInstaller의 Launch와 대응됩니다. |
-R | ReInstall | True / False | 기존 설치 정보를 무시하고 진행할 지 여부. 동작 방식을 지정하는 값이므로 필수로 입력해야 합니다. MiInstaller의 Reinstall을 참조하십시오. |
-D | DeviceType | WIN32/WIN32U/ SIM/SIMU CE | 배포 대상이 되는 장치를 지정하는 값. 배포대상 및 실행 대상을 지정하는 값이므로 필수로 입력해야 합니다. MiInstaller의 DeviceType을 참조하십시오. |
-V | Version | 3.0/3.1/3.1L/3.11/3.2/ 3.3 | MiPlatform의 제품 버전. 배포대상 및 실행 대상을 지정하는 값이므로 필수로 입력해야 합니다. Miinstaller의 Version을 참조 하십시오. |
-DPI | DeviceDPInfo | 96/128/192 | MiPlatform CE 버전에서만 적용되는 내용. 배포대상 머신의 DPI값을 입력하여 화면의 사이즈를 변경합니다. Omnia1, 2의 경우 192DPI를 이용하여 480*800의 화면을 지원합니다. Default값은 96DPI입니다.(240*400) |
-K | Key | Key값. | MiPlatform으로 운영할 서비스의 Key. 대상 서비스를 지정하는 값이므로 필수로 입력해야 합니다. MiInstaller의 Key를 참조 하십시오. |
-SK | SiteKey | SiteKey값. | 고객사별 Key값 중복을 방지하기 위한 고유값. 당사(TOBESOFT)에서 발급됩니다 MiInstaller의 SiteKey를 참조 하십시오. |
-U | UpdateURL | Update Info File의 URL. | Update Info File의 URL. 배포 작업을 위해 UpdateURL이 필요합니다. 입력하지 않는 다면 기존에 설정된 값으로 사용됩니다.(Registry에 Key별로 보관됨) |
-X | StartXML | StartXML의 URL/ StartXML의 파일 경로 | MiInstaller에 전달할 StartXML의 URL 또는 파일 경로. MiPlatform구동을 위해 필수적인 값 입니다. 입력하지 않는다면 기존에 설정된 값을 사용합니다.(Registry에 보관됨) |
-C | ComponentPath | Component가 있는 경로 | MiPlatform용 Component의 경로. MiPlatform에서 사용할 Component의 경로를 입력합니다. Alias를 사용해 입력할 수 있습니다. 단, Alias로 %COMPOENT%는 사용하지 않아야 합니다. 입력하지 않는 다면 기존에 설정된 값으로 사용됩니다.(Registry에 보관됨) MiInstaller의 ComponentPath를 참조하십시오. |
-Lf | Left | 숫자 (default값: -1로Center) | 마이플랫폼 구동 할 때 위치값. 값이 없으면 Registry값을 사용합니다. MiInstaller의 각 Property를 참조하십시오. |
-Tp | Top | 숫자 (default값: -1로 Center) | |
-Wd | Width | 숫자/max (default값: 600) | |
-Ht | Height | 숫자/max (default값: 800) | |
-OO | OnlyOne | True/False (Default값:False) | MiPlatform을 Key와 Version당 하나만 구동 되도록 할지 여부, 입력하지 않는 다면 기존에 설정된 값으로 사용됩니다.(Registry에 보관됨) MiInstaller의 OnlyOne을 참조 하십시오. |
-RES | Resource | Resource 경로 | MiPlatform에서 사용되는 Resource 파일 경로. 파일 이름만 있는 경우에는 ComponentPath경로에서 파일을 찾습니다. MiPlatform의 Resource는 XML형태로 제작된 정보 값입니다. 입력하지 않는다면 기존에 설정된 값을 사용합니다.(Registry에 보관됨) |
-GV | GlobalVal | MiPlatform에 전달될 값 | MiPlatform과 연동 작업을 위해 할당된 변수. MiPlatform에서 "GetReg()" API를 사용해 접근이 가능합니다. 입력하지 않는다면 기존에 설정된 값을 사용합니다.(Registry에 보관됨) |
-URES | UResource | Updater Resource 경로 | MiUpdater가 사용할 Resource 파일경로. UResource가 없으면 기본 UI가 사용되며, Uresource가 있다면 해당 Resource가 가진 화면 정보 및 에러 코드를 사용합니다. Uresource에 사용될 파일은 Resource DLL의 형태로 제작 되어야 합니다. 파일 이름만 있는 경우에는 ComponentPath경로에서 파일을 찾습니다. UResource의 경로는 %alias%형태로 입력할 수 있습니다. Alias에 대한 항목은 "7.2 MiUpdater에서 사용하는 Alias 목록"을 참고하십시오. 입력하지 않는다면 기존에 설정된 값을 사용합니다.(Registry에 보관됨) |
-IRES | IResource | Installer Resource | MiInstaller가 사용할 Resource 파일경로. String table의 값을 갖습니다. Updater 구동 시 -IRES로 지정된 xml 파일의 String으로 기본 Resource String Table을 대체 합니다. Local 경로 와 서버의 경로를 통한 다운로드를 통해 Loading이 가능합니다. |
-Rt | Retry | 재시도 횟수 (Default 값: 2) | MiPlatform에서 통신 연결 재시도 할 횟수. 입력하지 않는다면 기존에 설정된 값을 사용합니다.(Registry에 보관됨) |
-TO | TimeOut | 대기시간(초) | MiPlatform에서 통신 연결 대기시간(초). 입력하지 않는다면 기존에 설정된 값을 사용합니다.(Registry에 보관됨) |
-P | PreVersionCompare | True/False | Update Info File의 버전과 Update Info File에 설정된 Update List File의 버전 비교 여부. 자세한 사항은 MiInstaller의 PreVersionCompare를 참조 하십시오. |
-G | StartImage | Image경로. | MiPlatform용 Splash화면에 표시될 이미지 파일의 경로.자세한 사항은 MiInstaller의 StartImage를 참조하십시오. %Alais%형태로 입력할 수 있습니다. 입력하지 않는다면 기존에 설정된 값을 사용합니다.(Registry에 보관됨) |
-SC | Scroll | True/False(Default) | MDI에서 MDI Client영역(바탕화면)에 Scroll 사용 여부. SDI에서는 지원되지 않습니다. 입력하지 않는다면 기존에 설정된 값을 사용합니다.(Registry에 보관됨) |
-BI | UBKImage | Image경로 | MiUpdater의 배경화면 Image. MiUpdater의 기본 화면에서 배경 이미지만 바꿀 때 사용됩니다. 화면의 배치나 메시지를 수정하는 경우에 Resource dll을 직접 제작하여 사용할 수 있습니다. UBKImage의 경로는 %alias%형태로 입력할 수 있습니다. Alias는 "7.2 MiUpdater에서 사용하는 Alias 목록"을 참고하십시오. |
-NLE | NotLaunchForErr | True/False (Default값:False) | 오류가 발생했을 때 MiUpdater에서MiPlatform 실행 여부. MiUpdater를 사용할 경우만 이용됩니다. True면 오류가 발생된 경우 MiPlatform을 구동하지 않습니다. False면 오류와 관계 없이 작업 완료 후MiPlatform을 구동합니다. UpdateURL의 설정값이 없거나, UpdateURL 경로가 잘못 지정된 경우에는 이 옵션에 관계없이 MiPlatform을 띄웁니다. |
-UKM | UpdateKillMiplatform | Kill/NoKill/Confirm(Default)/ConfirmOnFailed | MiInstaller가 배포 작업을 시작할 때 대상버전의 MiPlatform을 어떻게 처리 할지 여부와 업데이트 도중 복사에 실패한 File의 처리 방법. 자세한 사항은 MiInstaller의 UpdateKillMiPlatform을 참조하시기 바랍니다. |
-MS | 메모리 크기(Byte) | 프로그램을 실행하기 위한 최소 요구 메모리 크기. PDA용 MiUpdater에서만 제공됩니다. | |
-MG | 에러메세지 | -MS 인자에서 받은 값보다 현재 사용가능한 메모리가 작을 경우에 띄울 에러메세지 에러 메시지를 띄우고 Updater 프로그램을 종료합니다. PDA용 MiUpdater에서만 제공됩니다. | |
-KM | True/False (Default값:False) | 메모리를 체크하기 전에 MiPlatform을 종료할지 여부 PDA용 MiUpdater에서만 제공됩니다. | |
-CM | True/False (Default값:False) | MiPlatform을 종료할 때 확인 메시지를 띄울지 여부 PDA용 MiUpdater에서만 제공됩니다. | |
-RC | True/False (Default값:False) | Updater후 다시 한번 메모리 체크를 할지 여부 PDA용 MiUpdater에서만 제공됩니다. |
바로가기 대상값에 입력한 String의 예
C:\WINNT\system32\MiUpdater331.exe -R false -L true -D WIN32U -V 3.3 -K key
위의 인자는 LaunchFile에서 다음과 같이 사용이 가능합니다.(배포 방법3인 경우)
<HTML> <HEAD> <TITLE> 배포 방법 3의 예제</TITLE> <META http-equiv="Content-Type" content="text/html; charset=euc-kr"> <SCRIPT language="JavaScript" type="JavaScript/text"> function fnonload() { MiInstlr.MakeShortCut("%system%\\MiUpdater331.exe", "-R false -L true -D WIN32U -V 3.3 -K key", "Site Name", "%UserApp%\\Company\\KeyName\\icon.ico", "desktop"); } </SCRIPT> </HEAD>
인자 입력 방법2
MiUpdater의 구버전에서부터 사용되어 오던 방법이나, 3.0용으로만 사용됩니다.
바로가기 ICON에 입력할 수 있는 파라미터는 [표 5-22]과 같습니다.
입력 Argument (설명) | 동일한 옵션명 | 입력값 | 설명 | |
---|---|---|---|---|
0 | 프로그램 이름 | C:\WINNT\system32\MiUpdater331.exe | %System%MiUpdater331.exe (바로가기 만들기 생성시 입력값) | |
1 | DeviceType | -D | WIN32/ WIN32U / SIM / SIMU / CE | 배포 대상이되는 장치 종류. |
2 | ReInstall | -R | True / False | 재배포 동작여부. |
3 | Key | -K | Demo, MyKey,... | 서비스의 구분 값. |
4 | Launch | -L | True / False | 배포 완료후 MiPlatform실행여부. |
5 | StartXML | -X | StartXML의 URL 또는 파일 경로. | StartXML의 URL 또는 파일 경로. |
6 | UpdateURL | -U | UpdateURL의 URL. | Update Info File의 URL. |
바로가기 대상값에 입력한 String의 예
C:\WINNT\system32\MiUpdater331.exe "Sim" "FALSE" "Demo" "TRUE" "http://your.site.com/key/StartXML.xml" "http://your.site.com/update/update-info-file.xml"
MPL2파일 형식
MPL2파일이란?
MPL은 "MiPlatform Launcher"의 약자로, MiPlatform을 구동하는데 필요한 정보가 저장된 파일 입니다.
MPL에는 DeviceType, Version, Key등 MiInstaller에서 사용하는 설정값이 저장 될 수 있습니다.
MPL2파일은 바로가기 아이콘의 대용으로 사용되며, MiUpdater와 파일 형식이 연결되어 있으므로 더블클릭하는 것 만으로사용자는 MiUpdater를 구동할 수 있습니다.
3.1버전의 MiUpdater에서는 확장자로 .mpl을 사용하며, 3.2이후버전의 MiUpdater에서는 확장자로 .mpl2를 사용합니다. MPL과 MPL2는 대부분의 내용은 동일하며 일부 추가 된 내용이 존재 합니다.
MPL2파일의 작성
MPL2파일은 XML형태로 작성되며, 구조는 Dataset XML 구조로 되어 있습니다.
값은 상수 컬럼을 이용해 입력 합니다.
DeviceType인자는 Dataset의 ID로 설정됩니다.
(Dataset구조는 "6.1 XML Format"을 참조하십시오)
MPL2파일에 포함가능한 인자이름 및 대응되는 MiInstaller의 Property는 [표 5-23]과 같습니다.
각 인자에 대한 설명은 MiInstaller를 참조하십시오.
Name | 설명 | MiInstaller의 Property | MiUpdater의 Argument |
---|---|---|---|
Dataset의 ID | 배포 대상이 되는 장치 | DeviceType | -D |
Launch | 배포 작업 완료 시점에 전용 브라우저를 구동할지 여부. | Launch | -L |
ReInstall | 기존 설치 정보를 무시하고 진행할 지 여부. | Reinstall | -R |
Version | 제품 버전 | Version | -V |
Key | 운영할 서비스의 Key | Key | -K |
SiteKey | Site별 Key | SiteKey | -SK |
UpdateURL | Update Info File의 URL | UpdateURL | -U |
StartXML | StartXML의 URL | StartXML | -X |
ComponentPath | Component의 경로 | ComponentPath | -C |
Left | 마이플랫폼 구동 할 때 위치값. | Left | -Lf |
Top | Top | -Tp | |
Width | Width | -Wd | |
Height | Height | -Ht | |
OnlyOne | MiPlatform을 하나만 띄우기 위한 설정값 | OnlyOne | -OO |
Resource | MiPlatform에서 사용되는 Resource 파일 경로. | Resource | -RES |
GlobalVal | MiPlatform과 연동 작업을 위해 할당된 변수. | GlobalVal | -GV |
UResource | MiUpdater가 사용할 Resource 파일경로. | UResource | -URES |
Retry | MiPlatform이 실행될 때 사용하는 통신 연결 retry 횟수 | Retry | -Rt |
TimeOut | MiPlatform이 실행될 때 사용하는 통신 연결TimeOut | TimeOut | -TO |
PreVersionCompare | Update Info File의 버전과 Update Info File에 설정된 Update List File의 버전 비교 여부. | PreVersionCompare | -P |
StartImage | MiPlatform용 Splash화면에 표시될 이미지 파일의 경로. | StartImage | -G |
Scroll | MDI에서 MDI Client영역(바탕화면)에 Scroll 사용 여부 | Scroll | -SC |
UBKImage | MiUpdater의 배경화면 Image. | UBKImage | -BI |
NotLaunchForErr | 오류가 발생했을 때 MiUpdater에서MiPlatform 실행 여부. | NotLaunchForErr | -NLE |
UpdateKillMip | MiInstaller가 배포 작업을 시작할 때 대상버전의 MiPlatform을 어떻게 처리 할지 여부와 업데이트 도중 복사에 실패한 File의 처리 방법. | UpdateKillMiplatform | -UKM |
REQMEMSIZE | 프로그램을 실행하기 위한 최소 요구 메모리 크기(PDA전용) | 없음 | -MS |
MESSAGE | -MS 인자에서 받은 값보다 현재 사용가능한 메모리가 작을 경우에 띄울 에러메세지. (PDA전용) | 없음 | -MG |
KILL | 메모리를 체크하기 전에 MiPlatform을 종료할지 여부 (PDA전용) | 없음 | -KM |
CONFIRMMSGBOX | MiPlatform을 종료할 때 확인 메시지를 띄울지 여부 (PDA전용) | 없음 | -CM |
RECHECKMEMORY | Updater후 다시 한번 메모리 체크를 할지 여부 (PDA전용) | 없음 | -RC |
MPL2 파일의 실제예
<?xml version='1.0' encoding='euc-kr'?> <root> <dataset id='WIN32U'> <column id='Version'>3.3</column> <column id='Key'>Demo</column> <column id='StartXML'>http://your.site.com/site/key/StartXML.xml</column> <column id='UpdateURL'>http://your.site.com/site/update/update-info-file.xml</column> <column id='ComponentPath'>%UserApp%\Company\KeyName\Component</column> <column id='Launch'>true</column> <column id='ReInstall'>false</column> </dataset> </root>