WideStudio Programming Guide

| WideStudio Programming Guide | WideStudio Index 目次

> ## リモートインスタンスにアクセスするには

> オブジェクト管理インスタンス(ロードモジュールにつき、一つ存在)に 対して要求すると、アクセスしたいリモートインスタンスを取得することができます。

> オブジェクト管理クラス | インスタンス取得関数
> WSCbaseList | WSCbaseList* WSGIappObjectList()

> アクセスしたいオブジェクトを取得は、次の様に行います。

>     #include <WSCbaseList.h> //WSGIappObjectList() にアクセスする...
>     #include <WSCRbase.h>    //仮想リモートインスタンスクラスを使用
>     ...
>     void event_procedure(WSCbase* object){

>       //オブジェクト管理による WSCRbase ポインタの取得
>       char* obj_name   = "newvlab_001";     //newvlab_001 という名称のリモートインスタンス
>       WSCRbase* rinstance = WSGIappObjectList()->getRemoteInstance(obj_name);

>       //仮想リモートインスタンスによるリモートインスタンスに対するアクセス
>       rinstance->setProperty(WSNlabelString,"HELLO WORLD");

> rinstance がリモートインスタンスにアクセスするための仮想リモートイン スタンスです。リモートインスタンスのオブジェクト名称を引数にします。 通常のインスタンス(オブジェクト)にアクセスするのと同じように、仮想リ モートインスタンスを通して、リモートインスタンスにアクセスします。

> ### リモートインスタンスをキャストするには

> オブジェクト管理を通して得られた仮想リモートインスタンスは通常のオブ ジェクトと同じようにオリジナルのクラスにキャストして使用することが出 来ます。オリジナルクラスに存在するメソッドを利用する場合にキャストし ます。次の例は、WSClist::addItem() を呼び出すため、WSCRbase 型の仮想 リモートインスタンスから、WSCRlist 型の仮想リモートインスタンスにキャ ストしています。

>     #include <WSCbaseList.h> //WSGIappObjectList() にアクセスする...
>     #include <WSCRlist.h>    //仮想リモートインスタンスクラスを使用
>     ...
>     void event_procedure(WSCbase* object){

>       //オブジェクト管理による WSCRbase ポインタの取得
>       char* obj_name   = "newlist_001";     //newlist_001 という名称のリモートインスタンス
>       WSCRbase* rinstance = WSGIappObjectList()->getRemoteInstance(obj_name);

>       //仮想リモートインスタンスをオリジナルのクラス WSClist に対応する
>       //仮想リモートクラス WSCRlist にキャスト。
>       WSCRlist* rlist = (WSCRlist*)rinstance->cast("WSCRlist");
>       if (rlist == NULL){
>         //WSCRlist クラスではない。
>         return;
>       }

>       //WSClist クラスのメソッドを WSCRlist 仮想リモートインスタンスクラスを
>       //通して呼び出す。
>       rlist->addItem("item..");

>     }

Document Release 3.70 for WideStudio ver 3.70, Feb 2004

WideStudio documents index | 目次

Copyright(C) T. Hirabayashi, 2000-2004 | Last modified: Feb 25, 2004