WideStudio Logo
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