CRSプログラミング

Q6
.NET Frameworkライブラリを呼び出したい

A6
[解決方法]
ExternalObject Packageを利用することで.NET Frameworkライブラリを呼び出すことが
出来ます。
(ver3.1より追加されました)

■例
.NETライブラリのMicrosoft.WindowsMobile.Forms名前空間のCameraCaptureDialog
クラスを使ってカメラを動作させたい場合

  /* ExternalObjectオブジェクトの生成 */
var ns = "Microsoft.WindowsMobile.Forms.";
var mobileLib = "Microsoft.WindowsMobile.Forms, Version=1.0.0.0,
           Culture=neutral, PublicKeyToken=31bf3856ad364e35";

var cameraCapture = new ExternalObject(
           ns + "CameraCaptureDialog", mobileLib);

    :

 /* パラメータの設定 */

    :

/* .NETライブラリメソッドの実行 */
cameraCapture.Invoke("ShowDialog");



ExternalObject Packageの詳細につきましては、
Biz/Browser & Biz/Browser Mobile CRSマニュアル > パッケージとクラス >
  ExternalObject Package
をご参照ください。


[サンプルコード]

Form frmCamera {
    X = 0;
    Y = 0;
    Width = 400;
    Height = 188;
    Button Button1 {
        X = 53;
        Y = 53;
        Width = 261;
        Height = 74;
        
        Function OnTouch( e ) {
            var ns = "Microsoft.WindowsMobile.Forms.";
            var mobileLib = "Microsoft.WindowsMobile.Forms, Version=1.0.0.0,
                          Culture=neutral, PublicKeyToken=31bf3856ad364e35";
            var drawingLib = "System.Drawing, Version=2.0.0.0, 
                          Culture=neutral,PublicKeyToken=969DB8053D3322AC";

            var cameraCapture = 
                new ExternalObject(ns + "CameraCaptureDialog", mobileLib);
            
            /* カメラモード */
            var mode = new ExtVal(
                ns + "CameraCaptureMode.Still", ExtVal.Enume, mobileLib);

            /* カメラモードをStill(写真)に指定 */
            cameraCapture.SetProperty("Mode", mode);
            
            /* 解像度 */
            var size = new ExternalObject(
                "System.Drawing.Size", drawingLib, 1280, 960);
            cameraCapture.SetProperty("Resolution", size);
            
            /* 画質‐高 */
            var quality = new ExtVal(
                ns + "CameraCaptureStillQuality.High", ExtVal.Enume,
                mobileLib);

            cameraCapture.SetProperty("StillQuality", quality);

            try {
                if (cameraCapture.Invoke("ShowDialog") == 1) {
                    var filename = cameraCapture.GetProperty("FileName");
                    MessageBox("撮影完了:" + filename);
                }
            } catch(e) {
                MessageBox(e.method + "\n" + str(e.code) + "\n" + e.message);
            }
        }
    }
    if ( !$DESIGNTIME ) {
        /* ここに初期化処理を記述してください */
    }
}

CRSファイル形式のサンプルを
  「.NETライブラリを利用したカメラ起動サンプル (mobNETDLLCamera.zip)
よりご利用いただけます。

管理番号:CRSM_009
  Biz-Collections Bizの宝箱 トップへ
  Biz/Browser Mobile・Biz/Designer Mobile TIPS集 トップへ