WideStudio/MWT Logo
WideStudio/MWT
Programming Guide
WideStudio/MWT 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.90 for WideStudio/MWT ver 3.90, Jul 2005


WideStudio/MWT documents index | 目次

Copyright(C) WideStudio/MWT Development Team, 1999-2005 Last modified: Jul 31, 2005