前のページ次のページ上に戻るホーム SophiaFramework UNIVERSE 5.3
SFZWebBrowserControl
簡易ウェブブラウザコントロールです。
#include <SFZWebBrowserControl.hpp>
class SFZWebBrowserControl : public SFYControl;
SFMTYPEDEFRESPONDER(SFZWebBrowserControl)

継承図

SFZWebBrowserControl クラスの継承図

協調図

SFZWebBrowserControl クラスの協調図

解説

■ 仕様と使い方

SFZWebBrowserControl クラスは、以下の機能を備える簡易ウェブブラウザコントロールです。

  • HTTP/HTTPS 通信
  • HTML レンダリング
  • インライン画像表示
  • ハイパーリンク
  • アクセス履歴

SFZWebBrowserControl クラスは、 内部に SFYWebBrowserWidget インスタンスを保持します。 その SFYWebBrowserWidget クラスの HTML レンダリングに関する機能は BREW API IHtmlViewer を使用して実装されています。

簡易ウェブブラウザコントロールの枠線の色や表示に関するデザインを変更したい場合は、 SFZWebBrowserControl::HandleRenderRequest 関数をオーバーライドします。

[Tip] HTTP/HTTPS 接続のタイムアウト

接続時のタイムアウトを行うには、SFZWebBrowserControl::SetTimeoutCallback 関数でコールバックを登録し、SFZWebBrowserControl::SetTimeoutMillisecond 関数でタイムアウトの時間を設定します。

[Note] 致命的なエラー

通知コールバック中やレジューム時などで処理を継続できない致命的なエラーが発生したとき、SFZWebBrowserControl::HandleError 関数が起動されます。 このとき、この関数をオーバーライドして、SFZWebBrowserControl インスタンスを終了する等の処理を記述する必要があります。

[Caution] mif ファイルの特権設定

SFZWebBrowserControl クラスを利用するには、 mif ファイルの特権レベル設定で「Web アクセス」の項目をオンにする必要があります。 独自のルート証明書ファイルを読み込む場合は、さらに「ファイル」の項目もオンにします。

■ サンプルコード

以下は、 簡易ブラウザ(SFZWebBrowserControl クラス)を利用してウィンドウ内に HTML 文書を表示するコードです。

SFMTYPEDEFRESPONDER(MyWindow)
class MyWindow : public SFZWindow{
    SFMSEALRESPONDER(MyWindow)
    SFMRESPONDERINSTANTIATEFOUR(MyWindow, SFZWindow, SFYContainer, SFYWidget, SFYResponder)
public:
    // MyWindow のタイプ
    enum CodeEnum {
        CODE_TYPE = four_char_code('M', 'W', 'N', 'D')
    };
    SFMTYPEDEFTYPE(CodeEnum)
public:
    static MyWindowSmp NewInstance(SFCErrorPtr exception = null);
    // MyWindow 内のレスポンダ(簡易ウェブブラウザ)を作成する関数
    SFCError Make(Void); 

protected:
    explicit MyWindow(Void) static_throws;
    virtual ~MyWindow(Void);

    // 簡易ウェブブラウザ
    SFZWebBrowserControlSmp _browser;

};

// コンストラクタ
MyWindow::MyWindow(Void) static_throws
{
    if (static_try()) {
        // レスポンダのタイプを設定する
        SetType(CODE_TYPE);
   }
}

// デストラクタ
MyWindow::~MyWindow(Void)
{
}

// MyWindow 内のレスポンダ(簡易ウェブブラウザ)を作成する関数
SFCError MyWindow::Make(Void)
{
    SFCError error;

    // 簡易ブラウザに表示する HTML 文書
    SFXAnsiString buffer(
         "BrowserControl<br /><br />"
         "<a href=\"/example/tabbrowser/\">ソフィアクレイドル</a><br /><br />"
    );

    // 簡易ウェブブラウザの作成
    if ((_browser = SFZWebBrowserControl::NewInstance(&error)) != null) {

        // 親レスポンダを MyWindow に設定する
        if ((error = _browser->SetParent(GetThis())) == SFERR_NO_ERROR) {

            // 実領域を MyWindow のローカル領域に設定する
            // ※ 以下の文を実行する前に、MyWindow のローカル領域を設定していないと、
            //    実領域は空の矩形領域となり何も表示されない
            _browser->SetRealBound(GetLocalBound());

            // 状態を「可視+活性+操作可能+フォーカス」にまとめて設定する
            _browser->SetState(true, true, true, true);

            // ブラウザコントロールを開く
            // * SophiaFramework 5.3.0 からこの処理が必要になります。
            _browser->Open();

            // HTML 文書を読み込む
            _browser->Load(buffer);

            // 簡易ウェブブラウザを最前面に移動する
            // ※ MyWindow の子レスポンダは簡易ウェブブラウザだけなので省略可
            _browser->ToFront();
        }
    }
    return error;
}

図 469. 実行結果

実行結果

参照

SFYControl | SFBHTMLViewer | SFZWebBrowserControl::SetRequestHeader | SFZWebBrowserControl::SetTimeoutCallback | SFZWebBrowserControl::SetTimeoutMillisecond | SFZWebBrowserControl::HandleError | BREW API IHtmlViewer | BREW API IWeb

メンバ

コンストラクタ/デストラクタ
SFZWebBrowserControl( Void )
SFZWebBrowserControl クラスのコンストラクタです。
~SFZWebBrowserControl( Void )
SFZWebBrowserControl クラスのデストラクタです。
パブリック関数
Bool AdjustViewer( Void )
内部で保持する IHTMLViewer オブジェクトの領域を調整します。
Void Cancel( Void )
Web サーバーへの接続をキャンセルします。
Void ClearHistory( Void )
履歴リストを空にします。
Void Close( Void )
HTTP/HTTPS 接続を閉じます。
SInt32 FindElement( ACharConstPtr element , SInt32 no )
現在表示中のページから、指定された要素を検索します。
SFXAnsiStringConstRef GetBaseUrl( Void )
Basic 認証の基準 URL を取得します。
SFXAnsiStringConstRef GetContentEncoding( Void )
HTTP レスポンスヘッダーの Content-Encoding フィールドの値を取得します。
SInt32 GetContentLength( Void )
HTTP レスポンスヘッダーの Content-Length フィールドを取得します。
SFXAnsiStringConstRef GetContentType( Void )
HTTP レスポンスヘッダーの Content-Type フィールドを取得します。
SFXAnsiStringConstRef GetCurrentTitle( Void )
現在表示しているページのタイトル取得します。
SFXAnsiStringConstRef GetCurrentURL( Void )
現在表示しているページの URL を取得します。
SFXDate GetDate( Void )
HTTP レスポンスヘッダーの Date フィールドの値を取得します。
SFXAnsiString GetElementText( SInt32 elementIndex )
指定された要素の内容を取得します。
SFXDate GetExpires( Void )
HTTP レスポンスヘッダーの Expires フィールドの値を取得します。
SInt32 GetIndent( Void )
HTML 表示のインデントの幅を取得します。[単位: ピクセル]
SFXDate GetLastModified( Void )
HTTP レスポンスヘッダーの Last-Modified フィールドの値を取得します。
SFXRGBColor GetLinkColor( Void )
HTML 表示のリンクの文字の表示色を取得します。
SFXAnsiStringConstRef GetMethod( Void )
HTTP リクエストメソッドを取得します。
SInt32 GetParagraphSpacing( Void )
HTML 表示の段落間の行間の長さを取得します。[単位: ピクセル]
SFXAnsiStringConstRef GetPassword( Void )
Basic 認証のパスワードを取得します。
SFXSocketAddressConstRef GetProxyServer( Void )
プロキシサーバーを取得します。
SFBSourceSmpConstRef GetRequestContent( Void )
HTTP リクエストボディを管理する SFBSource インスタンスを取得します。
UInt32 GetRequestFlag( Void )
HTTP リクエストフラグを取得します。
SFXAnsiStringConstRef GetRequestHeader( SFXAnsiStringConstRef key )
HTTP リクエストヘッダーを取得します。
SFXPropertyConstRef GetRequestHeader( Void )
HTTP リクエストヘッダーを取得します。
SFBSourceSmpConstRef GetResponseContent( Void )
HTTP レスポンスボディを管理する SFBSource インスタンスを取得します。
UInt32 GetResponseFlag( Void )
HTTP レスポンスフラグを取得します。
SFXAnsiStringConstRef GetResponseHeader( SFXAnsiStringConstRef key )
HTTP レスポンスヘッダーを取得します。
SFXPropertyConstRef GetResponseHeader( Void )
HTTP レスポンスヘッダーを取得します。
SInt32 GetResultCode( Void )
HTTP ステータスコードを取得します。
SFBWebSmpConstRef GetSFBWeb( Void )
SFBWeb インスタンスを取得します。
SFBWebRespSmpConstRef GetSFBWebResp( Void )
内部で管理する SFBWebResp インスタンスを取得します。
SInt32 GetScrollbarWidth( Void )
スクロールバーの幅を取得します。[単位: ピクセル]
SFCError GetStreamReader( UInt32 size , SFXStreamReaderPtr result )
HTTP レスポンスボディを読み込むためのデータ受信用ストリームを取得します。
SFCError GetStreamReader( SFXStreamReaderPtr result )
HTTP レスポンスボディを読み込むためのデータ受信用ストリームを取得します。
SFCError GetStreamWriter( UInt32 size , SFXStreamWriterPtr result )
HTTP リクエストボディにデータを書き込むためのデータ送信用ストリームを取得します。
SFCError GetStreamWriter( SFXStreamWriterPtr result )
HTTP リクエストボディにデータを書き込むためのデータ送信用ストリームを取得します。
SFXRGBColor GetTextColor( Void )
テキストの表示色を取得します。
UInt32 GetTimeoutMillisecond( Void )
接続タイムアウト時間を取得します。 [単位: ミリ秒]
UInt32 GetTrustMode( Void )
HTTPS 通信の SSL 認証モードを取得します。
SFXAnsiStringConstRef GetUser( Void )
Basic 認証のユーザー名を取得します。
SFXAnsiStringConstRef GetUserAgent( Void )
ユーザーエージェントを取得します。
AEECLSID GetWebClassId( Void )
HTTP/HTTPS 接続を開く際の Web クラス ID を取得します。
Bool IsBusy( Void )
通信中またはレンダリング中であるかどうかを判定をします。
Bool IsInlineEditEnable( Void )
文字をインラインで入力する設定であるかどうかを判定します。
Bool IsScrollbarEnable( Void )
スクロールバーがあるかどうかを判定をします。
SFCError Load( SFBSourceSmpConstRef source )
指定された HTML 文書を読み込み、レンダリングを開始します。
SFCError Load( SFBSourceSmpConstRef data , SFXAnsiStringConstRef url )
指定された HTML 文書を読み込み、レンダリングを開始します。
SFCError Load( SFBAStreamSmpConstRef stream )
指定された HTML 文書を読み込み、レンダリングを開始します。
SFCError Load( SFBAStreamSmpConstRef stream , SFXAnsiStringConstRef url )
指定された HTML 文書を読み込み、レンダリングを開始します。
SFCError Load( SFXAnsiStringConstRef data )
指定された HTML 文書を読み込み、レンダリングを開始します。
SFCError Load( SFXAnsiStringConstRef data , SFXAnsiStringConstRef url )
指定された HTML 文書を読み込み、レンダリングを開始します。
SFCError LoadCertificate( SInt32 kind , SFXPathConstRef path )
ASN.1/DER 形式の証明書のファイルまたはバッファを読み込みます。
SFCError LoadCertificate( SInt32 kind , SFXBufferConstRef buffer )
ASN.1/DER 形式の証明書のファイルまたはバッファを読み込みます。
SFCError Navigate( SFXAnsiStringConstRef url )
指定された URL のページを取得して、レンダリングを開始します。
static
SFZWebBrowserControlSmp
NewInstance( SFCErrorPtr exception = null )
新しいインスタンスを作成します。
SFCError Next( SInt32 n = 1 )
指定された値だけ履歴を進み、ページを再取得しレンダリングします。
SFCError Open( Void )
HTTP/HTTPS 接続を開きます。
SFCError Previous( SInt32 n = 1 )
指定された値だけ履歴を戻り、ページを再取得しレンダリングします。
Void Reload( Void )
現在表示しているページを再取得して再描画します。
SFCError SetAuthorizeData( SFXAnsiStringConstRef user , SFXAnsiStringConstRef passwd , SFXAnsiStringConstRef url )
HTTP ベーシック認証の情報を設定します。
SFCError SetIndent( SInt32 pixel )
インデントの幅を設定します。[単位: ピクセル]
Void SetInlineEditEnable( Bool enable )
フォームでの文字入力をインラインするかを設定します。
SFCError SetLinkColor( SFXRGBColorConstRef color )
リンク文字列の表示色を設定します。
SFCError SetMethod( SFXAnsiStringConstRef param )
HTTP リクエストメソッドを設定します。
SFCError SetParagraphSpacing( SInt32 pixel )
段落間の行間の長さを設定します。[単位: ピクセル]
SFCError SetProxyServer( SFXSocketAddressConstRef param )
プロキシサーバーを設定します。
SFCError SetRequestContent( SFXFileConstRef file )
HTTP リクエストボディにストレージまたはソースを設定します。
SFCError SetRequestContent( SFXMemoryConstRef memory )
HTTP リクエストボディにストレージまたはソースを設定します。
SFCError SetRequestContent( SFXStorageConstRef storage , SInt32 length )
HTTP リクエストボディにストレージまたはソースを設定します。
SFCError SetRequestContent( SFBSourceSmpConstRef source , SInt32 length )
HTTP リクエストボディにストレージまたはソースを設定します。
SFCError SetRequestFlag( UInt32 param )
HTTP リクエストフラグを設定します。
SFCError SetRequestHeader( SFXAnsiStringConstRef key , SFXAnsiStringConstRef value )
HTTP リクエストヘッダーを設定します。
Void SetScrollbarEnable( Bool enable )
スクロールバーの有無を設定します。
SFCError SetScrollbarWidth( SInt32 pixel )
スクロールバーの幅を設定します。[単位: ピクセル]
SFCError SetTextColor( SFXRGBColorConstRef color )
テキストの表示色を設定します。
Void SetTimeoutCallback( SFXCallback::CallbackSPP spp , VoidPtr reference )
接続タイムアウトコールバックを設定します。
Void SetTimeoutMillisecond( UInt32 msec )
接続タイムアウト時間を設定します 。[単位: ミリ秒]
SFCError SetTrustMode( UInt32 param )
HTTPS 通信の SSL 認証モードを設定します。
SFCError SetUserAgent( SFXAnsiStringConstRef param )
ユーザーエージェントを設定します。
Void SetWebClassId( AEECLSID id )
HTTP/HTTPS 接続を開く際の Web クラス ID を設定します。
Void Stop( Void )
レンダリングを行っている場合、その処理を中断します。
Void ClearHandler( Void ) (SFYResponder から継承)
このレスポンダのハンドラの登録をすべて解除します。
Void ClearTracer( Void ) (SFYResponder から継承)
このレスポンダのトレーサの配信規則の登録をすべて解除します。
SFCError Distribute( SFXEventConstRef event , BoolPtr result = null ) (SFYResponder から継承)
指定された配信型イベントを SFYDistributer インスタンスと、このレスポンダ以下のレスポンダツリーに配信します。
SFXRGBColorConstRef GetBackgroundColor( Void ) (SFYWidget から継承)
背景の色を取得します。
SFYResponderSmp GetChildBack( Void ) (SFYResponder から継承)
最背面に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildBack( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
最背面に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildBack( UInt32 id ) (SFYResponder から継承)
最背面に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildBack( UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
最背面に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildBackward( SInt32 index ) (SFYResponder から継承)
背面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildBackward( SInt32 index , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
背面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildBackward( SInt32 index , UInt32 id ) (SFYResponder から継承)
背面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildBackward( SInt32 index , UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
背面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
SInt32 GetChildCount( Void ) (SFYResponder から継承)
このレスポンダの子レスポンダの数を取得します。
SInt32 GetChildCount( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダの子レスポンダの数を取得します。
SInt32 GetChildCount( UInt32 id ) (SFYResponder から継承)
このレスポンダの子レスポンダの数を取得します。
SInt32 GetChildCount( UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダの子レスポンダの数を取得します。
SFYResponderSmp GetChildForward( SInt32 index ) (SFYResponder から継承)
前面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildForward( SInt32 index , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
前面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildForward( SInt32 index , UInt32 id ) (SFYResponder から継承)
前面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildForward( SInt32 index , UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
前面から数えて指定された順番に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildFront( Void ) (SFYResponder から継承)
最前面に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildFront( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
最前面に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildFront( UInt32 id ) (SFYResponder から継承)
最前面に位置するこのレスポンダの子レスポンダを取得します。
SFYResponderSmp GetChildFront( UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
最前面に位置するこのレスポンダの子レスポンダを取得します。
SInt32 GetCurrentValue( Void ) (SFYControl から継承)
コントロールの現在値を取得します。
SFYDistributerPtr GetDistributer( Void ) (SFYResponder から継承)
このレスポンダに設定されている配信エンジンを取得します。
SFYResponderSmp GetFrame( Void ) (SFYResponder から継承)
このレスポンダに装着されたフレームを取得します。
SFXRectangle GetGlobalBound( Void ) (SFYResponder から継承)
このレスポンダのグローバル領域を取得します。
UInt32 GetID( Void ) (SFYResponder から継承)
このレスポンダの ID を取得します。
SFXRectangle GetLocalBound( Void ) (SFYResponder から継承)
このレスポンダのローカル領域を取得します。
SInt32 GetMaximumValue( Void ) (SFYControl から継承)
コントロールの最大値を取得します。
SInt32 GetMinimumValue( Void ) (SFYControl から継承)
コントロールの最小値を取得します。
SInt32 GetNthBackward( Void ) (SFYResponder から継承)
このレスポンダが背面から数えて何番目に位置するかを取得します。
SInt32 GetNthBackward( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダが背面から数えて何番目に位置するかを取得します。
SInt32 GetNthBackward( UInt32 id ) (SFYResponder から継承)
このレスポンダが背面から数えて何番目に位置するかを取得します。
SInt32 GetNthBackward( UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダが背面から数えて何番目に位置するかを取得します。
SInt32 GetNthForward( Void ) (SFYResponder から継承)
このレスポンダが前面から数えて何番目に位置するかを取得します。
SInt32 GetNthForward( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダが前面から数えて何番目に位置するかを取得します。
SInt32 GetNthForward( UInt32 id ) (SFYResponder から継承)
このレスポンダが前面から数えて何番目に位置するかを取得します。
SInt32 GetNthForward( UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダが前面から数えて何番目に位置するかを取得します。
SFYResponderSmp GetParent( Void ) (SFYResponder から継承)
このレスポンダの親レスポンダを取得します。
Bool GetPropertyTransparent( Void ) (SFYResponder から継承)
このレスポンダの透過属性を取得します。
SFXRectangleConstRef GetRealBound( Void ) (SFYResponder から継承)
このレスポンダの実領域を取得します。
VoidPtr GetReference( Void ) (SFYResponder から継承)
このレスポンダのリファレンス値を取得します。
SFYRendererPtr GetRenderer( Void ) (SFYResponder から継承)
このレスポンダに設定されている描画エンジンを取得します。
SFYResponderSmp GetRoot( Void ) (SFYResponder から継承)
このレスポンダが所属するレスポンダツリーのルートレスポンダを取得します。
Bool GetStateActive( Bool inherit = false ) (SFYResponder から継承)
このレスポンダの活性状態を取得します。
Bool GetStateEnable( Bool inherit = false ) (SFYResponder から継承)
このレスポンダの操作可能状態を取得します。
Bool GetStateFocus( Bool inherit = false ) (SFYResponder から継承)
このレスポンダのフォーカス状態を取得します。
Bool GetStateValid( Bool inherit = false ) (SFYResponder から継承)
このレスポンダの有効状態を取得します。
Bool GetStateVisible( Bool inherit = false ) (SFYResponder から継承)
このレスポンダの可視状態を取得します。
SFXRectangle GetSuitableBound( Void ) (SFYResponder から継承)
このレスポンダの最適な領域(サイズ)を取得します。
SFXRectangle GetSuitableBound( SFXRectangleConstRef rectangle ) (SFYResponder から継承)
このレスポンダの最適な領域(サイズ)を取得します。
SFXRectangle GetSuitableBound( SFXRectangleConstRef param , HorizontalEnum horizontal , VerticalEnum vertical ) (SFYResponder から継承)
このレスポンダの最適な領域(サイズ)を取得します。
SFXMargin GetSuitableMargin( Void ) (SFYResponder から継承)
このレスポンダのフレーム余白領域を取得します。
SFCType GetType( Void ) (SFYResponder から継承)
このレスポンダのタイプを取得します。
SFXRectangleConstRef GetVirtualBound( Void ) (SFYResponder から継承)
このレスポンダの仮想領域を取得します。
Bool HasFrame( Void ) (SFYResponder から継承)
このレスポンダがコンテントレスポンダであるかどうかを判定します。
Void Initialize( Void ) (SFYResponder から継承)
このレスポンダを初期化します。
Void Invalidate( Void ) (SFYResponder から継承)
指定された領域を再描画領域に登録します。
Void Invalidate( SFXRectangleConstRef param ) (SFYResponder から継承)
指定された領域を再描画領域に登録します。
Void InvokeBackward( SFXEventConstRef event , Bool overload , BoolPtr result = null ) (SFYResponder から継承)
指定されたコールバック型イベントをこのレスポンダに送信します (ハンドラは登録順に起動されます)。
Void InvokeForward( SFXEventConstRef event , Bool overload , BoolPtr result = null ) (SFYResponder から継承)
指定されたコールバック型イベントをこのレスポンダに送信します (ハンドラは登録の逆順に起動されます)。
Bool IsBack( Void ) (SFYResponder から継承)
このレスポンダが最背面に位置するかどうかを判定します。
Bool IsBack( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダが最背面に位置するかどうかを判定します。
Bool IsBack( UInt32 id ) (SFYResponder から継承)
このレスポンダが最背面に位置するかどうかを判定します。
Bool IsBack( UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダが最背面に位置するかどうかを判定します。
Bool IsFrame( Void ) (SFYResponder から継承)
このレスポンダがアタッチメントフレームであるかどうかを判定します。
Bool IsFront( Void ) (SFYResponder から継承)
このレスポンダが最前面に位置するかどうかを判定します。
Bool IsFront( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダが最前面に位置するかどうかを判定します。
Bool IsFront( UInt32 id ) (SFYResponder から継承)
このレスポンダが最前面に位置するかどうかを判定します。
Bool IsFront( UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダが最前面に位置するかどうかを判定します。
Bool IsNthBackward( SInt32 index ) (SFYResponder から継承)
このレスポンダが背面から数えて指定された順番に位置するかどうかを判定します。
Bool IsNthBackward( SInt32 index , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダが背面から数えて指定された順番に位置するかどうかを判定します。
Bool IsNthBackward( SInt32 index , UInt32 id ) (SFYResponder から継承)
このレスポンダが背面から数えて指定された順番に位置するかどうかを判定します。
Bool IsNthBackward( SInt32 index , UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダが背面から数えて指定された順番に位置するかどうかを判定します。
Bool IsNthForward( SInt32 index ) (SFYResponder から継承)
このレスポンダが前面から数えて指定された順番に位置するかどうかを判定します。
Bool IsNthForward( SInt32 index , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダが前面から数えて指定された順番に位置するかどうかを判定します。
Bool IsNthForward( SInt32 index , UInt32 id ) (SFYResponder から継承)
このレスポンダが前面から数えて指定された順番に位置するかどうかを判定します。
Bool IsNthForward( SInt32 index , UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダが前面から数えて指定された順番に位置するかどうかを判定します。
Bool IsRoot( Void ) (SFYResponder から継承)
このレスポンダがルートレスポンダであるかどうかを判定します。
SFCError Recover( Void ) (SFYResponder から継承)
デバイス画面保存用ビットマップを使用してこのレスポンダとレスポンダ空間との交差領域を復元します。
SFCError RegisterHandler( SFXEventRangeConstRef range , SFYHandler::RuleRecConstRef rule ) (SFYResponder から継承)
指定されたハンドラをこのレスポンダに登録します。
SFCError RegisterHandler( SFXEventRangeConstRef range , SFYHandler::HandlerSPP spp , VoidPtr reference ) (SFYResponder から継承)
指定されたハンドラをこのレスポンダに登録します。
SFCError RegisterHandler( SFXEventRangeConstPtr range , SFYHandler::RuleRecConstPtr rule , SInt32 length ) (SFYResponder から継承)
指定されたハンドラをこのレスポンダに登録します。
SFCError RegisterHandler( SFXEventRangeConstPtr range , SFYHandler::HandlerSPPConstPtr spp , VoidPtrConstPtr reference , SInt32 length ) (SFYResponder から継承)
指定されたハンドラをこのレスポンダに登録します。
SFCError RegisterTracer( SFXEventRangeConstRef range , SFYTracer::RuleRecConstRef rule ) (SFYResponder から継承)
指定された配信規則をこのレスポンダのトレーサに登録します。
SFCError RegisterTracer( SFXEventRangeConstRef range , SFYTracer::OrderEnum order , SFYTracer::StateEnum state , Bool overload ) (SFYResponder から継承)
指定された配信規則をこのレスポンダのトレーサに登録します。
SFCError RegisterTracer( SFXEventRangeConstPtr range , SFYTracer::RuleRecConstPtr rule , SInt32 length ) (SFYResponder から継承)
指定された配信規則をこのレスポンダのトレーサに登録します。
SFCError RegisterTracer( SFXEventRangeConstPtr range , SFYTracer::OrderEnumConstPtr order , SFYTracer::StateEnumConstPtr state , BoolConstPtr overload , SInt32 length ) (SFYResponder から継承)
指定された配信規則をこのレスポンダのトレーサに登録します。
SFCError Render( Bool force = false ) (SFYResponder から継承)
このレスポンダ以下のレスポンダツリーをレスポンダ空間に再描画します。
Void SetBackgroundColor( SFXRGBColorConstRef param ) (SFYWidget から継承)
背景の色を設定します。
Void SetCurrentValue( SInt32 param ) (SFYControl から継承)
コントロールの現在値を設定します。
Void SetDistributer( SFYDistributerPtr param ) (SFYResponder から継承)
指定された配信エンジンをこのレスポンダに設定します。
SFCError SetFrame( SFYResponderSmpConstRef param ) (SFYResponder から継承)
このレスポンダにフレームを装着します。
Void SetID( UInt32 param ) (SFYResponder から継承)
指定された ID をこのレスポンダに設定します。
Void SetMaximumValue( SInt32 param ) (SFYControl から継承)
コントロールの最大値を設定します。
Void SetMinimumValue( SInt32 param ) (SFYControl から継承)
コントロールの最小値を設定します。
SFCError SetParent( SFYResponderSmpConstRef param ) (SFYResponder から継承)
指定されたレスポンダをこのレスポンダの親レスポンダに設定します。
Void SetProperty( Bool transparent ) (SFYResponder から継承)
指定された属性をこのレスポンダに設定します。
Void SetPropertyTransparent( Bool param ) (SFYResponder から継承)
指定された透過属性をこのレスポンダに設定します。
Void SetRealBound( SFXRectangleConstRef param ) (SFYResponder から継承)
指定された領域をこのレスポンダの実領域に設定します。
Void SetReference( VoidPtr param ) (SFYResponder から継承)
指定された値をこのレスポンダのリファレンスに設定します。
Void SetRenderer( SFYRendererPtr param ) (SFYResponder から継承)
指定された描画エンジンをこのレスポンダに設定します。
Void SetState( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
指定された値をこのレスポンダの可視、活性、操作可能、フォーカスの各状態フラグに設定します。
Void SetStateActive( Bool param ) (SFYResponder から継承)
指定された値をこのレスポンダの活性状態フラグに設定します。
Void SetStateEnable( Bool param ) (SFYResponder から継承)
指定された値をこのレスポンダの操作可能状態フラグに設定します。
Void SetStateFocus( Bool param ) (SFYResponder から継承)
指定された値をこのレスポンダのフォーカス状態フラグに設定します。
Void SetStateVisible( Bool param ) (SFYResponder から継承)
指定された値をこのレスポンダの可視状態フラグに設定します。
Void SetVirtualBound( SFXRectangleConstRef param ) (SFYResponder から継承)
指定された領域をこのレスポンダの仮想領域に設定します。
SFCError Snapshot( SFBBitmapSmpConstRef bitmap ) (SFYResponder から継承)
デバイス画面保存用ビットマップからこのレスポンダとレスポンダ空間との交差領域のスナップショットを取得します。
Void Terminate( Void ) (SFYResponder から継承)
このレスポンダの終了処理を行います。
Void ToBack( Void ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで最背面に移動します。
Void ToBack( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで最背面に移動します。
Void ToBack( UInt32 id ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで最背面に移動します。
Void ToBack( UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで最背面に移動します。
Void ToFront( Void ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで最前面に移動します。
Void ToFront( Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで最前面に移動します。
Void ToFront( UInt32 id ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで最前面に移動します。
Void ToFront( UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで最前面に移動します。
Void ToNthBackward( SInt32 index ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで背面から数えて指定された位置に移動します。
Void ToNthBackward( SInt32 index , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで背面から数えて指定された位置に移動します。
Void ToNthBackward( SInt32 index , UInt32 id ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで背面から数えて指定された位置に移動します。
Void ToNthBackward( SInt32 index , UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで背面から数えて指定された位置に移動します。
Void ToNthForward( SInt32 index ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで前面から数えて指定された位置に移動します。
Void ToNthForward( SInt32 index , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで前面から数えて指定された位置に移動します。
Void ToNthForward( SInt32 index , UInt32 id ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで前面から数えて指定された位置に移動します。
Void ToNthForward( SInt32 index , UInt32 id , Bool visible , Bool active , Bool enable , Bool focus ) (SFYResponder から継承)
このレスポンダを指定された条件の姉妹レスポンダのなかで前面から数えて指定された位置に移動します。
Void UnregisterHandler( SFXEventRangeConstRef range , SFYHandler::RuleRecConstRef rule ) (SFYResponder から継承)
このレスポンダから指定されたハンドラの登録を解除します。
Void UnregisterHandler( SFXEventRangeConstRef range , SFYHandler::HandlerSPP spp , VoidPtr reference ) (SFYResponder から継承)
このレスポンダから指定されたハンドラの登録を解除します。
Void UnregisterHandler( SFXEventRangeConstPtr range , SFYHandler::RuleRecConstPtr rule , SInt32 length ) (SFYResponder から継承)
このレスポンダから指定されたハンドラの登録を解除します。
Void UnregisterHandler( SFXEventRangeConstPtr range , SFYHandler::HandlerSPPConstPtr spp , VoidPtrConstPtr reference , SInt32 length ) (SFYResponder から継承)
このレスポンダから指定されたハンドラの登録を解除します。
Void UnregisterTracer( SFXEventRangeConstRef range ) (SFYResponder から継承)
このレスポンダのトレーサから指定された配信規則の登録を解除します。
Void UnregisterTracer( SFXEventRangeConstPtr range , SInt32 length ) (SFYResponder から継承)
このレスポンダのトレーサから指定された配信規則の登録を解除します。
プロテクト関数
Void DoneNotifyHandler( NotifyRef notify )
[ハンドラ] レンダリングが終了したときに呼び出されるハンドラです。
Void FocusNotifyHandler( NotifyRef notify )
[ハンドラ] カーソルが移動したときに呼び出されるハンドラです。
SFYWebBrowserWidgetSmpConstRef GetWidget( Void )
内部で保持する SFYWebBrowserWidget ウィジェットを取得します。
Void HandleBoundVirtual( Void )
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_VIRTUAL) イベントを受信したときに呼び出される関数です (仮想領域が変化したときの処理を行います)。
Void HandleError( SFCError error )
致命的なエラーが発生したときに呼び出されます。
Void HandleRenderRequest( SFXGraphicsPtr graphics )
描画イベントを受信したときに呼び出される関数です(レスポンダを描画します)。
Void JumpNotifyHandler( NotifyRef notify )
[ハンドラ] リンクが押されたときに呼び出されるハンドラです。
Bool ResponseNotifyHandler( NotifyConstRef notify )
[ハンドラ] サーバーへの接続が完了し、レンダリングが始まる前に呼び出されるハンドラです。
static
SFYResponderSmp
Factory( SFYResponderPtr responder , SFCErrorPtr exception = null ) (SFYResponder から継承)
NewInstance 関数の実装を補助します。
SFYResponderSmp GetThis( Void ) (SFYResponder から継承)
このレスポンダのスマートポインタを取得します。
Void HandleBoundGlobal( SFXRectangleConstRef rectangle ) (SFYWidget から継承)
[非推奨(廃止予定 API)] グローバル領域が変化したときに呼び出される関数です。
Void HandleBoundOptimize( SFXRectanglePtr rectangle ) (SFYWidget から継承)
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_OPTIMIZE) イベントを受信したときに呼び出される関数です(指定した矩形に収まる範囲内で最適な領域を計算します)。
Void HandleBoundReal( Void ) (SFYControl から継承)
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_REAL) イベントを受信したときに呼び出される関数です (実領域が変化したときの処理を行います)。
Void HandleBoundRequest( SFXRectanglePtr rectangle ) (SFYWidget から継承)
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_REQUEST) イベントを受信したときに呼び出される関数です(最適な領域を計算します)。
Void SetType( SFCType param ) (SFYResponder から継承)
指定された値をこのレスポンダのタイプに設定します。
CodeEnum
SFZWebBrowserControl クラスを表す定数です。
Notify
ビューアや通信コールバックから通知される構造体です。
HorizontalEnum (SFYResponder から継承)
水平方向のアライメントを表す定数です。
VerticalEnum (SFYResponder から継承)
垂直方向のアライメントを表す定数です。

SFZWebBrowserControl::SFZWebBrowserControl
SFZWebBrowserControl クラスのコンストラクタです。
[ protected, explicit ]
SFZTabControl(Void);

解説

このコンストラクタは、SFZWebBrowserControl インスタンスの初期化処理を行います。 詳細は、内部実装のコードを参照してください。

内部実装

このコンストラクタの内部実装は以下の通りです。

/*protected */SFZWebBrowserControl::SFZWebBrowserControl(Void) static_throws
{
    static SFXEventRange::AtomRecConst          range[] = {
        { SFEVT_RESPONDER_BROWSER_NOTIFY, SFEVT_RESPONDER_BROWSER_NOTIFY, SFP16_BEGIN, SFP16_END }
    };
    SFYHandler::RuleRec                         rule[lengthof(range)];
    SFCError                                    error;

    if (static_try()) {
        SetType(CODE_TYPE);
        if ((_widget = SFYWebBrowserWidget::NewInstance(&error)) != null) {
            static_throw(_widget->SetParent(GetThis()));
            if (static_try()) {
                rule[0].spp = XANDLER_FUNCTION(OnNotify);
                rule[0].reference = this;
                static_throw(_widget->RegisterHandler(atomic_cast(range), rule, lengthof(range)));
                if (static_try()) {
                    _widget->SetState(true, true, true, true);
                }
            }
        }
        else {
            static_throw(error);
        }
    }
}// SFZWebBrowserControl::SFZWebBrowserControl //

/*private */XANDLER_IMPLEMENT_VOIDBROWSERNOTIFY(SFZWebBrowserControl, OnNotify, invoker, reason, notify)
{
    switch (reason) {
        case SFYWebBrowserWidget::NOTIFY_RESPONSE:
            ResponseNotifyHandler(*notify);
            break;
        case SFYWebBrowserWidget::NOTIFY_DONE:
            DoneNotifyHandler(*notify);
            break;
        case SFYWebBrowserWidget::NOTIFY_JUMP_SUBMIT:
            JumpNotifyHandler(*notify);
            break;
        case SFYWebBrowserWidget::NOTIFY_FOCUS:
            FocusNotifyHandler(*notify);
            break;
        case SFYWebBrowserWidget::NOTIFY_PAGE_DONE:
            break;
        case SFYWebBrowserWidget::NOTIFY_CONTENT_DONE:
            break;
        case SFYWebBrowserWidget::NOTIFY_FATAL_ERROR:
            HandleError(notify->u.nDone);
            break;
    }
    return;
}// XANDLER_IMPLEMENT_VOIDBROWSERNOTIFY(OnNotify) //

参照

SFYWebBrowserWidget | SFYWebBrowserWidget::NotifyEnum | SFZWebBrowserControl::ResponseNotifyHandler | SFZWebBrowserControl::DoneNotifyHandler | SFZWebBrowserControl::JumpNotifyHandler | SFZWebBrowserControl::FocusNotifyHandler | SFZWebBrowserControl::HandleError


SFZWebBrowserControl::~SFZWebBrowserControl
SFZWebBrowserControl クラスのデストラクタです。
[ public, virtual ]
~SFZWebBrowserControl(Void);

解説

何も行いません。

参照

SFYWebBrowserWidget::~SFYWebBrowserWidget


SFZWebBrowserControl::AdjustViewer
内部で保持する IHTMLViewer オブジェクトの領域を調整します。
[ public ]
Bool AdjustViewer(Void);

戻り値

  • 領域変更に成功したとき: true
  • 失敗したとき: false

解説

この関数は内部で保持する IHTMLViewer オブジェクトの領域を調整します。

通常は、実領域または仮想領域が変更されたときに自動的に呼び出されるため呼び出す必要がありません。

その他の要因で自身のレスポンダのグローバル領域が変更される場合は、明示的な呼び出しが必要です。


SFZWebBrowserControl::Cancel
Web サーバーへの接続をキャンセルします。
[ public ]
Void Cancel(Void);

解説

この関数は、Web サーバーへの接続をキャンセルします。その際、接続タイムアウトのタイマーもキャンセルされます。

この関数は、HTTP/HTTPS 接続が SFXHTTPConnection::STATE_CONNECT の状態のときに有効です。

この関数は、SFZWebBrowserControl::Close 関数の内部からも呼び出されます。

参照

SFZWebBrowserControl::Close


SFZWebBrowserControl::ClearHistory
履歴リストを空にします。
[ public ]
Void ClearHistory(Void);

解説

この関数は、履歴リストを空にします。

参照

SFYWebBrowserWidget::ClearHistory


SFZWebBrowserControl::Close
HTTP/HTTPS 接続を閉じます。
[ public ]
Void Close(Void);

解説

この関数は、HTTP/HTTPS 接続を閉じます。

HTTP/HTTPS 接続の状態は、SFXHTTPConnection::STATE_CLOSE になります。

参照

SFYWebBrowserWidget::Close


SFZWebBrowserControl::DoneNotifyHandler
[ハンドラ] レンダリングが終了したときに呼び出されるハンドラです。
[ protected, virtual ]
Void DoneNotifyHandler(
    NotifyRef notify   // 通知情報
);

引数

notify

notify.u.nDone に BREW のエラーコードが通知されます。

解説

この関数は、レンダリングが終了したときに呼び出されるハンドラです。

デフォルトの実装は、何も行いません。

使用例

以下は、オーバーライドしてエラー処理を行うコードです。

#include <SFZResponder/SFZControl/SFZBrowserControl/SFZWebBrowserControl.hpp>

SFMTYPEDEFRESPONDER(MyBrowserControl)
class MyBrowserControl : public SFZWebBrowserControl {
    SFBSEALRESPONDER(MyBrowserControl)
    SFMRESPONDERINSTANTIATEFOUR(MyBrowserControl, SFZWebBrowserControl, SFYControl, SFYWidget, SFYResponder)
public:
    static MyBrowserControlSmp NewInstance(SFCErrorPtr exception = null);
protected:
    explicit MyBrowserControl(Void) static_throws;
    virtual ~MyBrowserControl(Void);
    virtual Void DoneNotifyHandler(NotifyRef notify) {
        if (notify.u.nDone != SFERR_NO_ERROR) {
            // エラー処理を行う
        }
    }
};

内部実装

この関数の内部実装は以下の通りです。

/*protected virtual */Void SFZWebBrowserControl::DoneNotifyHandler(NotifyRef notify)
{
    unused(notify);
    return;
}// SFZWebBrowserControl::DoneNotifyHandler //

参照

SFZWebBrowserControl::Notify | SFZWebBrowserControl::FocusNotifyHandler | SFZWebBrowserControl::JumpNotifyHandler | SFZWebBrowserControl::ResponseNotifyHandler


SFZWebBrowserControl::FindElement
現在表示中のページから、指定された要素を検索します。
[ public, const ]
SInt32 FindElement(
    ACharConstPtr element   // 検索する要素名
    SInt32 no               // 取得する要素の番号
);

引数

element

検索する要素名を指定します。

no

検索する要素の何番目の位置を取得するかを指定します。

0 を指定すると、element 引数の名前と一致する最初の要素の位置を返します。 n を指定すると、 element 引数の名前と一致する n + 1 番目の要素の位置を返します。

戻り値

  • 見つかった場合: 要素の位置
  • 見つからなかった場合: IHTMLVIEWER_NOTFOUND
  • element 引数の値が認識可能な要素名ではない場合: IHTMLVIEWER_BADELEMENT

解説

この関数は、現在表示中のページから、指定された要素を検索します。

[Note] 注意

この関数は、内部で SFBHTMLViewer::FindElem 関数( BREW API IHTMLVIEWER_FindElem)を呼び出します。

[Tip] Tip

戻り値(要素の位置)は、SFZWebBrowserControl::GetElementText 関数で使用します。

参照

SFZWebBrowserControl::GetElementText | BREW API IHTMLVIEWER_FindElem


SFZWebBrowserControl::FocusNotifyHandler
[ハンドラ] カーソルが移動したときに呼び出されるハンドラです。
[ protected, virtual ]
Void FocusNotifyHandler(
    NotifyRef notify   // 通知情報
);

引数

notify

現在カーソルがあたっているタグの位置、種類、状態が通知されます。

解説

この関数は、カーソルが移動したときに呼び出されるハンドラです。

デフォルトの実装以外の処理を行いたい場合は、 この関数をオーバーライドします。

デフォルトの実装は、何も行いません。

内部実装

この関数の内部実装は以下の通りです。

/*protected virtual */Void SFZWebBrowserControl::FocusNotifyHandler(NotifyRef notify)
{
    unused(notify);
    return;
}// SFZWebBrowserControl::FocusNotifyHandler //

参照

SFZWebBrowserControl::Notify | SFZWebBrowserControl::DoneNotifyHandler | SFZWebBrowserControl::JumpNotifyHandler | SFZWebBrowserControl::ResponseNotifyHandler


SFZWebBrowserControl::GetBaseUrl
Basic 認証の基準 URL を取得します。
[ public, const ]
SFXAnsiStringConstRef GetBaseUrl(Void);

戻り値

Basic 認証の基準 URL

解説

Basic 認証の基準 URL を取得します。

SFZWebBrowserControl::SetAuthorizeData 関数で設定された値が取得されます。

参照

SFZWebBrowserControl::SetAuthorizeData


SFZWebBrowserControl::GetContentEncoding
HTTP レスポンスヘッダーの Content-Encoding フィールドの値を取得します。
[ public, const ]
SFXAnsiStringConstRef GetContentEncoding(Void);

戻り値

HTTP レスポンスヘッダーの Content-Encoding フィールドの値

解説

この関数は、HTTP/HTTPS 接続の HTTP レスポンスヘッダーの Content-Encoding フィールドの値を取得します。 HTTP/HTTPS 接続の状態が SFXHTTPConnection::STATE_OPEN でない場合、 空文字列(SFXAnsiString::EmptyInstance())を返します。


SFZWebBrowserControl::GetContentLength
HTTP レスポンスヘッダーの Content-Length フィールドを取得します。
[ public, const ]
SInt32 GetContentLength(Void);

戻り値

HTTP レスポンスヘッダーの Content-Length フィールドの値

解説

この関数は、HTTP/HTTPS 接続の HTTP レスポンスヘッダーの Content-Length フィールドの値を取得します。

HTTP レスポンスヘッダーに Content-Length フィールドが存在しない場合、または HTTP/HTTPS 接続の状態が SFXHTTPConnection::STATE_OPEN でない場合、 -1 を返します。


SFZWebBrowserControl::GetContentType
HTTP レスポンスヘッダーの Content-Type フィールドを取得します。
[ public, const ]
SFXAnsiStringConstRef GetContentType(Void);

戻り値

HTTP レスポンスヘッダーの Content-Type フィールド

解説

この関数は、HTTP/HTTPS 接続の HTTP レスポンスヘッダーの Content-Type フィールドを取得します。

HTTP/HTTPS 接続の状態が SFXHTTPConnection::STATE_OPEN でない場合、 空文字列(SFXAnsiString::EmptyInstance) を返します。


SFZWebBrowserControl::GetCurrentTitle
現在表示しているページのタイトル取得します。
[ public, const ]
SFXAnsiStringConstRef GetCurrentTitle(Void);

戻り値

現在表示しているページのタイトル。

解説

この関数は、現在表示しているページのタイトルを取得します。

参照

SFZWebBrowserControl::GetCurrentURL


SFZWebBrowserControl::GetCurrentURL
現在表示しているページの URL を取得します。
[ public, const ]
SFXAnsiStringConstRef GetCurrentURL(Void);

戻り値

現在表示しているページの URL。

解説

この関数は、現在表示しているページの URL を取得します。

参照

SFZWebBrowserControl::GetCurrentTitle


SFZWebBrowserControl::GetDate
HTTP レスポンスヘッダーの Date フィールドの値を取得します。
[ public, const ]
SFXDate GetDate(Void);

戻り値

HTTP レスポンスヘッダーの Date フィールドの値(SFXDate)

解説

この関数は、HTTP/HTTPS 接続の HTTP レスポンスヘッダーの Date フィールドの値(SFXDate)を取得します。

HTTP レスポンスヘッダーに Date フィールドが存在しない場合、 または HTTP/HTTPS 接続の状態が SFXHTTPConnection::STATE_OPEN でない場合、SFXDate(0) を返します。

参照

SFXDate


SFZWebBrowserControl::GetElementText
指定された要素の内容を取得します。
[ public, const ]
SFXAnsiString GetElementText(
    SInt32 elementIndex   // 要素の位置
);

引数

elementIndex

要素の位置を指定します。 この引数には、 SFZWebBrowserControl::FindElement 関数の戻り値を指定します。

戻り値

指定された要素の内容。

解説

この関数は、現在表示しているページから指定された要素の内容を取得します。

要素の中身がない場合は空文字列 SFXAnsiString::EmptyInstance() を返します。

[Note] 注意

この関数は、内部で SFBHTMLViewer::GetElemText 関数( BREW API IHTMLVIEWER_GetElemText)を呼び出します。

参照

SFZWebBrowserControl::FindElement | SFXAnsiString::EmptyInstance | SFBHTMLViewer::GetElemText | BREW API IHTMLVIEWER_GetElemText


SFZWebBrowserControl::GetExpires
HTTP レスポンスヘッダーの Expires フィールドの値を取得します。
[ public, const ]
SFXDate GetExpires(Void);

戻り値

HTTP レスポンスヘッダーの Expires フィールドの値 (SFXDate)

解説

この関数は、HTTP/HTTPS 接続の HTTP レスポンスヘッダーの Expires フィールドの値(SFXDate)を取得します。 HTTP レスポンスヘッダーに Expires フィールドが存在しない場合、 または HTTP/HTTPS 接続の状態が SFXHTTPConnection::STATE_OPEN でない場合、 SFXDate(0) を返します。

参照

SFYWebBrowserWidget::GetExpires


SFZWebBrowserControl::GetIndent
HTML 表示のインデントの幅を取得します。[単位: ピクセル]
[ public, const ]
SInt32 GetIndent(Void);

戻り値

インデントの幅。[単位: ピクセル]

解説

この関数は、HTML 表示のインデントの幅を取得します。[単位: ピクセル]

[Note] 注意

この関数は、内部で引数のオプション ID に "HVOPT_N_INDENT" を指定して BREW API IHTMLVIEWER_GetOption 関数を呼び出します。

参照

SFZWebBrowserControl::SetIndent | SFBHTMLViewer::GetOption | BREW API IHTMLVIEWER_GetOption


SFZWebBrowserControl::GetLastModified
HTTP レスポンスヘッダーの Last-Modified フィールドの値を取得します。
[ public, const ]
SFXDate GetLastModified(Void);

戻り値

HTTP レスポンスヘッダーの Last-Modified フィールドの値 (SFXDate)

解説

この関数は、HTTP/HTTPS 接続の HTTP レスポンスヘッダーの Last-Modified フィールドの値 (SFXDate) を取得します。

HTTP レスポンスヘッダーに Last-Modified フィールドが存在しない場合、または HTTP 接続の状態が SFXHTTPConnection::STATE_OPEN でない場合、SFXDate(0) を返します。

参照

SFYWebBrowserWidget::GetLastModified


SFZWebBrowserControl::GetLinkColor
HTML 表示のリンクの文字の表示色を取得します。
[ public, const ]
SFXRGBColor GetLinkColor(Void);

戻り値

リンク文字列の表示色。

解説

この関数は、HTML 表示のリンクの文字の表示色を取得します。

[Note] 注意

この関数は、内部で引数のオプション ID に "HVOPT_RGB_LINK" を指定して BREW API IHTMLVIEWER_GetOption 関数を呼び出します。

参照

SFZWebBrowserControl::SetLinkColor | SFZWebBrowserControl::GetTextColor | SFBHTMLViewer::GetOption | BREW API IHTMLVIEWER_GetOption


SFZWebBrowserControl::GetMethod
HTTP リクエストメソッドを取得します。
[ public, const ]
SFXAnsiStringConstRef GetMethod(Void);

戻り値

HTTP リクエストメソッド

解説

この関数は、SFZWebBrowserControl::SetMethod 関数で設定した、HTTP/HTTPS 接続の HTTP リクエストメソッドを取得します。

HTTP/HTTPS 接続の状態が SFXHTTPConnection::STATE_OPEN でない場合、空文字列(SFXAnsiString::EmptyInstance())を返します。

参照

SFYWebBrowserWidget::GetMethod | SFZWebBrowserControl::SetMethod


SFZWebBrowserControl::GetParagraphSpacing
HTML 表示の段落間の行間の長さを取得します。[単位: ピクセル]
[ public, const ]
SInt32 GetParagraphSpacing(Void);

戻り値

段落間の行間の長さ。[単位: ピクセル]

解説

この関数は、HTML 表示の段落間の行間の長さを取得します。[単位: ピクセル]

[Note] 注意

この関数は、内部で引数のオプション ID に "HVOPT_N_VSPACE" を指定して BREW API IHTMLVIEWER_GetOption 関数を呼び出します。

参照

SFZWebBrowserControl::SetParagraphSpacing | SFBHTMLViewer::GetOption | BREW API IHTMLVIEWER_GetOption


SFZWebBrowserControl::GetPassword
Basic 認証のパスワードを取得します。
[ public, const ]
SFXAnsiStringConstRef GetPassword(Void);

戻り値

Basic 認証のパスワード

解説

Basic 認証のパスワードを取得します。

SFZWebBrowserControl::SetAuthorizeData 関数で設定された値が取得されます。

参照

SFZWebBrowserControl::SetAuthorizeData


SFZWebBrowserControl::GetProxyServer
プロキシサーバーを取得します。
[ public, const ]
SFXSocketAddressConstRef GetProxyServer(Void);

戻り値

HTTP/HTTPS 接続のプロキシサーバー(SFXSocketAddress)

解説

この関数は、SFXHTTPConnection::SetProxyServer 関数で設定した、HTTP/HTTPS 接続のプロキシサーバー(SFXSocketAddress)を取得します。

HTTP/HTTPS 接続の状態が SFXHTTPConnection::STATE_OPEN でない場合、またはプロキシサーバーが設定されていない場合、SFXSocketAddress::EmptyInstance() を返します。

参照

SFXSocketAddress | SFXHTTPConnection::SetProxyServer


SFZWebBrowserControl::GetRequestContent
HTTP リクエストボディを管理する SFBSource インスタンスを取得します。
[ public, const ]
SFBSourceSmpConstRef GetRequestContent(Void);

戻り値

HTTP リクエストボディを管理する SFBSource インスタンス

解説

この関数は、SFXHTTPConnection::SetRequestContent 関数を使用して設定した、HTTP/HTTPS 接続の HTTP リクエストボディを管理する SFBSource インスタンスを取得します。

HTTP/HTTPS 接続の状態が SFXHTTPConnection::STATE_OPEN でない場合、または何も設定されていない場合、SFBSourceSmp::EmptyInstance() の参照を返します。

参照

SFXHTTPConnection::SetRequestContent | SFBSource


SFZWebBrowserControl::GetRequestFlag
HTTP リクエストフラグを取得します。
[ public, const ]
UInt32 GetRequestFlag(Void);

戻り値

HTTP リクエストフラグ

解説

この関数は、SFZWebBrowserControl::SetRequestFlag 関数で設定した、 HTTP リクエストフラグを取得します。

HTTP/HTTPS 接続の状態が SFXHTTPConnection::STATE_OPEN でない場合、 0 を返します。

参照

SFZWebBrowserControl::SetRequestFlag | SFZWebBrowserControl::Open | BREW API IWEB_GetResponse


SFZWebBrowserControl::GetRequestHeader
HTTP リクエストヘッダーを取得します。
[ public, const ]
SFXAnsiStringConstRef GetRequestHeader(
    SFXAnsiStringConstRef key   // フィールド名
);
[ public, const ]
SFXPropertyConstRef GetRequestHeader(Void);

戻り値

HTTP リクエストヘッダー

解説

この関数は、HTTP リクエストヘッダーを取得します。 フィールド名を指定して個別に取得することも可能です。 引数に何も指定しない場合は、全ての HTTP リクエストヘッダーを取得します。

HTTP/HTTPS 接続の状態が SFXHTTPConnection::STATE_OPEN でない場合、、 空文字列(SFXAnsiString::EmptyInstance())、または 空のプロパティ(SFXProperty::EmptyInstance()) を返します。

参照

SFZWebBrowserControl::SetRequestHeader | SFXProperty | SFXAnsiString


SFZWebBrowserControl::GetResponseContent
HTTP レスポンスボディを管理する SFBSource インスタンスを取得します。
[ public, const ]
SFBSourceSmpConstRef GetResponseContent(Void);

戻り値

HTTP レスポンスボディを管理する SFBSource インスタンス

解説

この関数は、HTTP/HTTPS 接続の HTTP レスポンスボディを管理する SFBSource インスタンスを取得します。

HTTP/HTTPS 接続の状態が SFXHTTPConnection::STATE_OPEN でない場合、 SFBSourceSmp::EmptyInstance() を返します。

[Tip] Tip
HTTP/HTTP 接続確立後、この関数を使用して HTTP レスポンスボディを取得することが可能です。
[Note] 注意

SFZWebBrowserControl::GetStreamReader 関数は、 SFZWebBrowserControl::GetResponseContent 関数の戻り値である SFBSource インスタンスからストリームを取得しています。

[Caution] HTTP レスポンスボディの読み込み

SFZWebBrowserControl::GetResponseContent 関数を使用して HTTP レスポンスボディを読み込む場合は、 SFZWebBrowserControl::GetStreamReader 関数を使えません。

逆に、SFZWebBrowserControl::GetStreamReader 関数を使用して HTTP レスポンスボディを読み込む場合は、 SFZWebBrowserControl::GetResponseContent 関数を使えません。

参照

SFZWebBrowserControl::GetStreamReader | SFBSource | SFZWebBrowserControl::Navigate


SFZWebBrowserControl::GetResponseFlag
HTTP レスポンスフラグを取得します。
[ public, const ]
UInt32 GetResponseFlag(Void);

戻り値

HTTP レスポンスフラグ

解説

この関数は、HTTP/HTTPS 接続の HTTP レスポンスフラグを取得します。

HTTP レスポンスフラグは、以下のフラグの論理和として表現されます。

  • WEBRESPONSE_REDIRECTED : IWeb インターフェースによりリダイレクトされました。BREW の HTTP プロトコルエンジンには実装されていません。
  • WEBRESPONSE_COOKIES : HTTP リクエストでクッキーを送信しました。BREW の HTTP プロトコルエンジンには実装されていません。
  • WEBRESPONSE_CACHED : ローカル キャッシュにからデータを取得しました。ネットワーク通信は行っていません。
  • WEBRESPONSE_KEEPALIVE : 接続はキープアライブ状態にあります。
  • WEBRESPONSE_HTTP09 : HTTP 0.9 のレスポンスを受信しました。ヘッダーがありません。ステータスコード 200 として処理しました。
  • WEBRESPONSE_LOCAL : ローカルで生成されたコンテンツです。ネットワーク通信は行っていません。
  • WEBRESPONSE_PROXIED : プロキシ経由でデータを受信しました。
  • WEBRESPONSE_AUTHBASIC : BASIC 認証のための情報を送信しました。BREW の HTTP プロトコルエンジンには実装されていません。

HTTP/HTTPS 接続の状態が SFXHTTPConnection::STATE_OPEN でない場合、 0 を返します。

参照

SFZWebBrowserControl::SetRequestFlag | SFZWebBrowserControl::Navigate | SFBWebResp | BREW API IWEBRESP_GetOpt


SFZWebBrowserControl::GetResponseHeader
HTTP レスポンスヘッダーを取得します。
[ public, const ]
SFXAnsiStringConstRef GetResponseHeader(
    SFXAnsiStringConstRef key   // フィールド名
);
[ public, const ]
SFXPropertyConstRef GetResponseHeader(Void);

戻り値

HTTP レスポンスヘッダー

解説

この関数は、HTTP レスポンスヘッダーを取得します。 フィールド名を指定して個別に取得することも可能です。 引数に何も指定しない場合は、全ての HTTP レスポンスヘッダーを取得します。

HTTP/HTTPS 接続の状態が SFXHTTPConnection::STATE_OPEN でない場合、 空文字列(SFXAnsiString::EmptyInstance())、 空のプロパティ(SFXProperty::EmptyInstance())を返します。

参照

SFZWebBrowserControl::Navigate | SFXProperty | SFXAnsiString


SFZWebBrowserControl::GetResultCode
HTTP ステータスコードを取得します。
[ public, const ]
SInt32 GetResultCode(Void);

戻り値

HTTP ステータスコード

解説

この関数は、HTTP ステータスコードを取得します。

HTTP/HTTPS 接続の状態が SFXHTTPConnection::STATE_OPEN でない場合、 -1 を返します。

HTTP/HTTPS 接続が確立されている場合、 この関数の戻り値は、BREW API の WebRespInfo 内のフィールド nCode と同じです。

nCode は、プロトコルエラーコードまたは「負の」 WEB_ERROR エラーコードを表します。 正の値はサーバーから返された値であり、負のエラーコードはシステムエラーを表します。 戻り値を WEB_ERROR_MAP() に渡すことによって、BREW の WEB_ERROR エラーコードを取得できます。 また、WEB_ERROR_SUCCEEDED() に渡すことによって操作が成功したかどうか判定できます。

[Note] 注意
WEB_ERROR エラーコードの詳細については、 AEEError.h を参照してください。

参照

SFZWebBrowserControl::Navigate | BREW API WebRespInfo | BREW API WEB_ERROR_MAP | BREW API WEB_ERROR_SUCCEEDED


SFZWebBrowserControl::GetSFBWeb
SFBWeb インスタンスを取得します。
[ public, const ]
SFBWebSmpConstRef GetSFBWeb(Void);

戻り値

内部で使用される SFBWeb インスタンス

解説

この関数は、このコントロールが内部で保持する  BREW API IWeb インターフェースを取得します。

BREW API IWeb インターフェースが設定されていない場合は、null を返します。

[Important] WebOpt 指定時の注意

他の用途で利用するまでは、IWeb インターフェースに設定した WebOpt データを保持する必要があります。

詳しくは、BREW API リファレンス、IWeb インターフェースの「 WEBOPT の寿命に関する注意事項 」を参照してください。

[Important] サスペンド時の振る舞い

サスペンドしたとき、WebOpt の情報はリセットされ IWeb インターフェースを内部で作成する設定(デフォルト状態)に戻ります。

サスペンド前の IWeb インターフェースを使うには、レジューム時に WebOpt データを再設定する必要があります。

参照

SFBWeb | BREW API IWeb


SFZWebBrowserControl::GetSFBWebResp
内部で管理する SFBWebResp インスタンスを取得します。
[ public, const ]
SFBWebRespSmpConstRef GetSFBWebResp(Void);

戻り値

この HTTP/HTTPS 接続が内部で管理する SFBWebResp インスタンス

解説

この関数は、HTTP/HTTPS 接続が内部で管理する SFBWebResp インスタンスを取得します。

参照

SFBWebResp | BREW API IWebResp


SFZWebBrowserControl::GetScrollbarWidth
スクロールバーの幅を取得します。[単位: ピクセル]
[ public, const ]
SInt32 GetScrollbarWidth(Void);

戻り値

スクロールバーの幅。[単位: ピクセル]

解説

この関数は、HTML 表示のスクロールバーの幅を取得します。[単位: ピクセル]

[Note] 注意

この関数は、内部で引数のオプション ID に "HVOPT_N_SBWIDTH" を指定して BREW API IHTMLVIEWER_GetOption 関数を呼び出します。

参照

SFZWebBrowserControl::SetScrollbarWidth | SFBHTMLViewer::GetOption | BREW API IHTMLVIEWER_GetOption


SFZWebBrowserControl::GetStreamReader
HTTP レスポンスボディを読み込むためのデータ受信用ストリームを取得します。
[ public ]
SFCError GetStreamReader(
    UInt32 size                 // バッファサイズ
    SFXStreamReaderPtr result   // データ受信用ストリームへのポインタ
);
[ public ]
SFCError GetStreamReader(
    SFXStreamReaderPtr result   // データ受信用ストリームへのポインタ
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • result 引数が null のとき: SFERR_INVALID_PARAM
  • HTTP/HTTPS 接続の状態が SFXHTTPConnection::STATE_OPEN でないとき: SFERR_INVALID_STATE
  • メモリ不足のとき: SFERR_NO_MEMORY

解説

この関数は、HTTP/HTTPS 接続の HTTP レスポンスボディを読み込むためのデータ受信用ストリームを取得します。

size 引数を指定する場合、ストリームバッファは指定したサイズで固定です。 指定しない場合は、ストリームバッファは可変長になり、 内部的に SFXElasticStreamReader クラスが利用されます。

[Tip] Tip
データ受信用ストリームは、受信するデータの種類に応じて SFXBinaryStreamReaderSFXAnsiStringStreamReader、または SFXWideStringStreamReader クラスを使い分けます。
[Note] 注意

SFZWebBrowserControl::GetStreamReader 関数を使用して取得するストリームは、 SFZWebBrowserControl::GetResponseContent 関数の戻り値である SFBSource インスタンスから取得しています。

[Caution] HTTP レスポンスボディの読み込み

SFZWebBrowserControl::GetResponseContent 関数を使用して HTTP レスポンスボディを読み込む場合は、 SFZWebBrowserControl::GetStreamReader 関数を使えません。

逆に、SFZWebBrowserControl::GetStreamReader 関数を使用して HTTP レスポンスボディを読み込む場合は、 SFZWebBrowserControl::GetResponseContent 関数を使えません。

[Note] 注意
この関数は、HTTP/HTTPS 接続の状態が SFXHTTPConnection::STATE_OPEN のときにのみ有効です。

参照

SFZWebBrowserControl::GetResponseContent | SFZWebBrowserControl::GetStreamWriter | SFZWebBrowserControl::Navigate | SFXBinaryStreamReader | SFXAnsiStringStreamReader | SFXWideStringStreamReader | ストリームバッファ


SFZWebBrowserControl::GetStreamWriter
HTTP リクエストボディにデータを書き込むためのデータ送信用ストリームを取得します。
[ public ]
SFCError GetStreamWriter(
    UInt32 size                 // バッファサイズ
    SFXStreamWriterPtr result   // データ送信用ストリームへのポインタ
);
[ public ]
SFCError GetStreamWriter(
    SFXStreamWriterPtr result   // データ送信用ストリームへのポインタ
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • result 引数が null のとき: SFERR_INVALID_PARAM
  • HTTP/HTTPS 接続の状態が SFXHTTPConnection::STATE_OPEN でないとき: SFERR_INVALID_STATE
  • メモリ不足のとき: SFERR_NO_MEMORY

解説

この関数は、この HTTP 接続の HTTP リクエストボディにデータを書き込むためのデータ送信用ストリームを取得します。

size 引数を指定する場合、ストリームバッファは指定したサイズで固定です。 指定しない場合は、ストリームバッファは可変長になり、 内部的に SFXElasticStreamWriter クラスが利用されます。

[Tip] Tip
データ送信用ストリームは、送信するデータの種類に応じて SFXBinaryStreamWriterSFXAnsiStringStreamWriter、または SFXWideStringStreamWriter クラスを使い分けます。
[Tip] Tip

SFZWebBrowserControl::GetStreamWriter 関数を使用してデータを送信する場合、 一旦ヒープ上に HTTP リクエストボディが作成されるため、 送信可能なデータサイズは携帯電話に搭載されているメモリ容量に依存することになります。

SFZWebBrowserControl::SetRequestContent 関数を使用してファイルストレージ(SFXFile)を設定すると、 ファイルから直接ネットーワークへデータが送信可能となり、大きなサイズのデータを送信できます。

[Caution] HTTP リクエストボディの作成

SFZWebBrowserControl::SetRequestContent 関数を使用して HTTP リクエストボディを作成する場合は、 SFZWebBrowserControl::GetStreamWriter 関数を使えません。

逆に、SFZWebBrowserControl::GetStreamWriter 関数を使用して HTTP リクエストボディを作成する場合は、 SFZWebBrowserControl::SetRequestContent 関数を使えません。

[Note] 注意
この関数は、HTTP/HTTPS 接続の状態が SFXHTTPConnection::STATE_OPEN のときにのみ有効です。

参照

SFZWebBrowserControl::GetStreamReader | SFZWebBrowserControl::SetRequestContent | SFZWebBrowserControl::Open | SFXBinaryStreamWriter | SFXAnsiStringStreamWriter | SFXWideStringStreamWriter | ストリームバッファ


SFZWebBrowserControl::GetTextColor
テキストの表示色を取得します。
[ public, const ]
SFXRGBColor GetTextColor(Void);

戻り値

HTML 表示のテキストの表示色。

解説

この関数は、HTML 表示のテキストの表示色を取得します。

[Note] 注意

この関数は、内部で引数のオプション ID に "HVOPT_RGB_TEXT" を指定して BREW API IHTMLVIEWER_GetOption 関数を呼び出します。

参照

SFZWebBrowserControl::SetTextColor | SFZWebBrowserControl::GetLinkColor | SFBHTMLViewer::GetOption | BREW API IHTMLVIEWER_GetOption


SFZWebBrowserControl::GetTimeoutMillisecond
接続タイムアウト時間を取得します。 [単位: ミリ秒]
[ public, const ]
UInt32 GetTimeoutMillisecond(Void);

戻り値

接続タイムアウト時間 [単位: ミリ秒]

解説

この関数は、 接続タイムアウト時間を取得します。 [単位: ミリ秒]

参照

SFZWebBrowserControl::SetTimeoutMillisecond | SFZWebBrowserControl::SetTimeoutCallback


SFZWebBrowserControl::GetTrustMode
HTTPS 通信の SSL 認証モードを取得します。
[ public, const ]
UInt32 GetTrustMode(Void);

戻り値

SSL 認証モード

解説

この関数は、HTTPS 通信の SSL 認証モードを取得します。

HTTP/HTTPS 接続の状態が SFXHTTPConnection::STATE_OPEN でない場合、 0 を返します。

以下の 4 種類の SSL 認証モードの何れかが返却されます。

  • SSL_TRUST_MODE_FAIL: トラストエラーがあると接続が失敗します。[デフォルト]
  • SSL_TRUST_MODE_CHECK: トラストエラーの場合、チェックまたは無視できるように中断します。
  • SSL_TRUST_MODE_IGNORE: すべてのトラストエラーを無視します。
  • SSL_TRUST_MODE_ALWAYS: トラストをチェックできるように常に中断します。

参照

SFZWebBrowserControl::SetTrustMode | SFZWebBrowserControl::Open | BREW API ISSL_NegotiateV


SFZWebBrowserControl::GetUser
Basic 認証のユーザー名を取得します。
[ public, const ]
SFXAnsiStringConstRef GetUser(Void);

戻り値

ユーザー名

解説

Basic 認証のユーザー名を取得します。

SFZWebBrowserControl::SetAuthorizeData 関数で設定された値が取得されます。

参照

SFZWebBrowserControl::SetAuthorizeData


SFZWebBrowserControl::GetUserAgent
ユーザーエージェントを取得します。
[ public, const ]
SFXAnsiStringConstRef GetUserAgent(Void);

戻り値

ユーザーエージェント

解説

この関数は、HTTP/HTTPS 接続のユーザーエージェントを取得します。

HTTP/HTTPS 接続の状態が SFXHTTPConnection::STATE_OPEN でない場合、 空文字列(SFXAnsiString::EmptyInstance()) を返します。

参照

SFZWebBrowserControl::SetUserAgent | SFZWebBrowserControl::Open | SFXAnsiString


SFZWebBrowserControl::GetWebClassId
HTTP/HTTPS 接続を開く際の Web クラス ID を取得します。
[ public, const ]
AEECLSID GetWebClassId(Void);

戻り値

Web クラス ID

解説

HTTP/HTTPS 接続を開く際の Web クラス ID を取得します。

デフォルト値は、AEECLSID_WEB です。

参照

SFZWebBrowserControl::SetWebClassId


SFZWebBrowserControl::GetWidget
内部で保持する SFYWebBrowserWidget ウィジェットを取得します。
[ protected, const ]
SFYWebBrowserWidgetSmpConstRef GetWidget(Void);

戻り値

ウェブブラウザウィジェット

解説

内部で保持する SFYWebBrowserWidget ウィジェットを取得します。

参照

SFYWebBrowserWidget


SFZWebBrowserControl::HandleBoundVirtual
(SFEVT_RESPONDER_BOUND, SFP16_BOUND_VIRTUAL) イベントを受信したときに呼び出される関数です (仮想領域が変化したときの処理を行います)。
[ protected, virtual ]
Void HandleBoundVirtual(Void);

解説

この関数は、 領域イベント [SFXEvent(SFEVT_RESPONDER_BOUND, SFP16_BOUND_VIRTUAL, rectangle)] を受信したときに呼び出されます。

仮想領域の変更時に追加の処理を行いたい場合は、この関数をオーバーライドします。

デフォルトの実装は、内部で保持する SFYWebBrowserWidget インスタンスの実領域を自身のローカル領域から SFXMargin(2, 2) マージンサイズだけ縮小して設定します。

[Note] 領域イベント[(SFEVT_RESPONDER_BOUND, SFP16_BOUND_VIRTUAL) イベント]

SFYResponder::SetRealBound / SFYResponder::SetVirtualBound 関数は、 この関数内の処理により仮想領域が変化すると、 領域イベント [SFXEvent(SFEVT_RESPONDER_BOUND, SFP16_BOUND_VIRTUAL, rectangle)] をレスポンダに送信します。

SFYWidget クラスを継承するレスポンダが領域イベントを受信すると、 SFYWidget::SFYWidget コンストラクタで最初に登録した領域イベント専用ハンドラの処理により、 SFYWidget::HandleBoundVirtual 仮想関数が呼び出されます。

※ 領域イベントの P32 パラメータ rectangle には変更後の仮想領域が設定されています。

[Note] 仮想領域の変更処理

SFYWidget::HandleBoundVirtual 仮想関数をオーバーライドする以外に、 領域イベント専用ハンドラ[XANDLER_DECLARE_VOIDBOUND]を定義・実装し レスポンダに登録して行うことも可能です。

仮想領域の変更処理は、最初に SFYWidget::HandleBoundVirtual 仮想関数を実行し、 次に領域イベント専用ハンドラを登録した順に実行して行われます。

領域イベント専用ハンドラを宣言し登録する手間が省けるので、 通常は SFYWidget::HandleBoundVirtual 仮想関数をオーバーライドして処理を記述します。

内部実装

この関数の内部実装は以下の通りです。

/*protected virtual */Void SFZWebBrowserControl::HandleBoundVirtual(Void)
{
    SFXRectangle                                rx;

    rx.Set(GetLocalBound());
    rx.Deflate(2, 2);
    _widget->SetRealBound(rx);
    return;
}// SFZWebBrowserControl::HandleBoundVirtual //

参照

SFYResponder::SetRealBound | SFYResponder::SetVirtualBound | 仮想領域 | 領域イベント[SFEVT_RESPONDER_BOUND]


SFZWebBrowserControl::HandleError
致命的なエラーが発生したときに呼び出されます。
[ protected, virtual ]
Void HandleError(
    SFCError error   // エラー
);

解説

SFZWebBrowserControl クラスが致命的なエラーを発生したときに、呼び出されます。

デフォルトの実装は何もしません。


SFZWebBrowserControl::HandleRenderRequest
描画イベントを受信したときに呼び出される関数です(レスポンダを描画します)。
[ protected, virtual, const ]
Void HandleRenderRequest(
    SFXGraphicsPtr graphics   // グラフィックスオブジェクト
);

解説

この関数は、 描画イベント [SFXEvent(SFEVT_RESPONDER_RENDER, SFP16_RENDER_REQUEST, graphics)] を受信したときに呼び出されます。

デフォルトの実装は、このレスポンダを描画します。 詳細は、内部実装コードを参照してください。

枠線の色を変更するなど独自の描画処理を行いたい場合は、この関数をオーバーライドします。

[Note] レスポンダの描画手順

  1. SFYResponder::Invalidate 関数を使用して再描画領域を登録します。
  2. イベントループの最後、 アプリ開始/レジュームまたは優先的イベントハンドラ終了のタイミング、 あるいは、コールバックなどのイベントループの外で、 自動的に、あるいは、明示的に SFYResponder::Render 関数を呼び出します。
  3. 描画エンジンが起動されます。
  4. 再描画が必要なレスポンダだけが描画イベントを受信します。
  5. SFYWidget クラスを継承するレスポンダが描画イベントを受信すると、 SFYWidget::SFYWidget コンストラクタで最初に登録した描画ハンドラの処理により、 SFYWidget::HandleRenderRequest 仮想関数が呼び出されます。 その後、描画ハンドラが登録した順に呼び出されます。
  6. 実際にレスポンダが描画されます。

[Tip] Tip
描画ハンドラの宣言と登録の手間を省けるので、 通常は SFYWidget::HandleRenderRequest 仮想関数だけを利用してレスポンダを描画します。

内部実装

この関数の内部実装は以下の通りです。

/*protected virtual */Void SFZWebBrowserControl::HandleRenderRequest(SFXGraphicsPtr graphics) const
{
    static SFXBevelColor::AtomRecConst          frameRgb = {
        {{{0x00, 0xAA, 0xAA, 0xAA}}}, {{{0x00, 0xFF, 0xFF, 0xFF}}}, {{{0x00, 0xFF, 0xFF, 0xFF}}}
    };
    static SFXRGBColor::AtomRecConst            theme[] = {
        {{{0x00, 0x00, 0x00, 0x00}}},
        {{{0x00, 0xDD, 0x99, 0x99}}},
        {{{0x00, 0xFF, 0xFF, 0xFF}}}
    };
    SFBDisplaySmp                               display;
    SFXRectangle                                rx;

    rx.Set(GetLocalBound());
    graphics->DrawBevelRectangle(rx, frameRgb);
    rx.Deflate(1, 1);
    graphics->DrawRectangle(rx, theme[0]);
    rx.Deflate(1, 1);
    if (GetStateFocus(true)) {
        graphics->DrawRectangle(rx, theme[1]);
    }
    else {
        graphics->DrawRectangle(rx, theme[2]);
    }
    return;
}// SFZWebBrowserControl::HandleRenderRequest //

参照

SFYResponder::Invalidate | SFYResponder::Render | 描画イベント[SFEVT_RESPONDER_RENDER] | 描画イベント専用ハンドラ[XANDLER_DECLARE_VOIDRENDER] | 描画処理 | イベントループ | レスポンダツリー


SFZWebBrowserControl::IsBusy
通信中またはレンダリング中であるかどうかを判定をします。
[ public, const ]
Bool IsBusy(Void);

戻り値

  • 通信中、またはレンダリング中のとき: true
  • それ以外のとき: false

解説

この関数は、通信中またはレンダリング中であるかどうかを判定をします。

参照

SFYWebBrowserWidget::IsBusy


SFZWebBrowserControl::IsInlineEditEnable
文字をインラインで入力する設定であるかどうかを判定します。
[ public, const ]
Bool IsInlineEditEnable(Void);

戻り値

  • インライン入力のとき: true
  • 全画面入力のとき: false

解説

この関数は、文字をインラインで入力する設定であるかどうかを判定します。

参照

SFZWebBrowserControl::SetInlineEditEnable


SFZWebBrowserControl::IsScrollbarEnable
スクロールバーがあるかどうかを判定をします。
[ public, const ]
Bool IsScrollbarEnable(Void);

戻り値

  • あるとき: true
  • そうでないとき: false

解説

この関数は、スクロールバーがあるかどうかを判定をします。

参照

SFZWebBrowserControl::SetScrollbarEnable


SFZWebBrowserControl::JumpNotifyHandler
[ハンドラ] リンクが押されたときに呼び出されるハンドラです。
[ protected, virtual ]
Void JumpNotifyHandler(
    NotifyRef notify   // 通知情報
);

引数

notify
  • notify.u.jump.pszURL: リンク先 URL
  • notify.u.jump.pszMethod: HTTP メソッド
  • notify.u.jump.pszData: POST データ
  • notify.ex.absoluteURL: [拡張]リンク先絶対 URL

解説

この関数は、リンクが押されたときに呼び出されるハンドラです。

デフォルトの実装以外の処理を行いたい場合は、 この関数をオーバーライドします。

デフォルトの実装では、リンク先のページを開きます。

使用例

以下のコードでは、 リンクが mailto: ならメーラーを呼ぶようにこの関数をオーバーライドしています。

#include <SFZResponder/SFZControl/SFZBrowserControl/SFZWebBrowserControl.hpp>

SFMTYPEDEFRESPONDER(MyBrowserControl)
class MyBrowserControl : public SFZWebBrowserControl {
    SFBSEALRESPONDER(MyBrowserControl)
    SFMRESPONDERINSTANTIATEFOUR(MyBrowserControl, SFZWebBrowserControl, SFYControl, SFYWidget, SFYResponder)
public:
    static MyBrowserControlSmp NewInstance(SFCErrorPtr exception = null);
protected:
    explicit MyBrowserControl(Void) static_throws;
    virtual ~MyBrowserControl(Void);
    virtual Void JumpNotifyHandler(NotifyRef notify) {
        if (notify.ex.absoluteURL.StartWith("mailto:")) {
            // mailto:ならメーラーを呼ぶ
            Mailer(notify.ex.absoluteURL);
        }
        else {
            // それ以外なら標準ハンドラを呼ぶ
            SFZWebBrowserControl::JumpNotifyHandler(notify);
        }
    }
};

内部実装

この関数の内部実装は以下の通りです。

/*protected virtual */Void SFZWebBrowserControl::JumpNotifyHandler(NotifyRef notify)
{
    Navigate(notify.ex.absoluteURL);
    return;
}// SFZWebBrowserControl::JumpNotifyHandler //

参照

SFZWebBrowserControl::Notify | SFZWebBrowserControl::Navigate | SFZWebBrowserControl::DoneNotifyHandler | SFZWebBrowserControl::FocusNotifyHandler | SFZWebBrowserControl::ResponseNotifyHandler


SFZWebBrowserControl::Load
指定された HTML 文書を読み込み、レンダリングを開始します。
[ public ]
SFCError Load(
    SFBSourceSmpConstRef source   // HTML 文書
);
[ public ]
SFCError Load(
    SFBSourceSmpConstRef data   // HTML 文書
    SFXAnsiStringConstRef url   // 基準となる URL
);
[ public ]
SFCError Load(
    SFBAStreamSmpConstRef stream   // HTML 文書
);
[ public ]
SFCError Load(
    SFBAStreamSmpConstRef stream   // HTML 文書
    SFXAnsiStringConstRef url      // 基準となる URL
);
[ public ]
SFCError Load(
    SFXAnsiStringConstRef data   // HTML 文書
);
[ public ]
SFCError Load(
    SFXAnsiStringConstRef data   // HTML 文書
    SFXAnsiStringConstRef url    // 基準となる URL
);

引数

source

HTML 文書とみなすソースです。

source

HTML 文書とみなすストリームです。

data

HTML 文書とみなす文字列です。

url

基準となる URL です。 HTML 文書内にある相対 URL 表記は、 この引数で指定された URL からの相対パスと解釈されます。

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • メモリ不足のとき: SFERR_NO_MEMORY
  • 指定された url が正しくないとき: SFERR_INVALID_PARAM
  • HTTP/HTTPS 接続の状態が SFXHTTPConnection::STATE_OPEN でないとき: SFERR_INVALID_STATE
  • その他失敗したとき: SFERR_FAILED

解説

この関数は、指定された HTML 文書を読み込み、レンダリングを開始します。

[Note] 注意

インライン画像は取得できしだい表示されます。 HTTP 接続を要するインライン画像を読み込む可能性があるので、HTTP/HTTPS 接続の状態が SFXHTTPConnection::STATE_OPEN でなければなりません。

参照

SFZWebBrowserControl::Navigate | SFZWebBrowserControl::DoneNotifyHandler | SFZWebBrowserControl::ResponseNotifyHandler | SFZWebBrowserControl::IsBusy | SFZWebBrowserControl::Stop


SFZWebBrowserControl::LoadCertificate
ASN.1/DER 形式の証明書のファイルまたはバッファを読み込みます。
[ public ]
SFCError LoadCertificate(
    SInt32 kind            // 証明書の種類
    SFXPathConstRef path   // 証明書のファイルパス
);
[ public ]
SFCError LoadCertificate(
    SInt32 kind                // 証明書の種類
    SFXBufferConstRef buffer   // 証明書のバッファ
);

引数

kind

証明書の種類: WEBOPT_X509_ROOT_CERT, WEBOPT_X509_LEAF_CERT, WEBOPT_X509_BRANCH_CERT のいずれか

path

ASN.1/DER 形式の証明書のファイルパス

buffer

ASN.1/DER 形式の証明書のバッファ

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • HTTP/HTTPS 接続の状態が STATE_CLOSE でないとき: SFERR_INVALID_STATE
  • メモリ不足のとき: SFERR_NO_MEMORY
  • サポートされていないとき: SFERR_UNSUPPORTED
  • その他失敗したとき: SFERR_FAILED

解説

ASN.1/DER 形式の証明書のファイルまたはバッファを読み込みます。

HTTP/HTTPS 接続を開く前に実行する必要があります。

使用例

ルート証明書を読み込む

SFZWebBrowserControlSmp browser;
SFCError error;

if ((browser = SFZWebBrowserControl::NewInstance(&error)) != null) {
    // 接続を開く前にルート証明書を読み込む
    if ((error = browser->LoadCertificate(WEBOPT_X509_ROOT_CERT, SFXPath("scradle.der"))) == SFERR_NO_ERROR) {
        if ((error = browser->Open()) == SFERR_NO_ERROR) {
            if ((error = browser->SetMethod("GET")) == SFERR_NO_ERROR) {
                error = browser->Navigate("https://www.s-cradle.com/example/tabbrowser/");
            }
        }
    }
}

参照

SFBX509Chain::AddCert


SFZWebBrowserControl::Navigate
指定された URL のページを取得して、レンダリングを開始します。
[ public ]
SFCError Navigate(
    SFXAnsiStringConstRef url   // 開く URL
);

引数

url

HTTP アクセスする URL を指定します。

スキームは http、https、file と res がサポートされています。

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • メモリ不足のとき: SFERR_NO_MEMOERY
  • url 引数の値が正しくないとき: SFERR_INVALID_PARAM
  • HTTP/HTTPS 接続の状態が SFXHTTPConnection::STATE_OPEN でないとき: SFERR_INVALID_STATE
  • 失敗したとき: SFERR_FAILED

解説

この関数は、指定された URL のページを取得して、レンダリングを開始します。

この関数を呼び出す前に、SFZWebBrowserControl::Open 関数で接続を開いて、SFZWebBrowserControl::SetMethod 関数で HTTP メソッドを設定する必要があります。

また、HTTP メッセージのリクエストコンテンツを利用するときは、SFZWebBrowserControl::SetRequestContent 関数で事前に設定します。

[Note] 注意

HTML データとインライン画像の読み込みは任意のタイミングで行われ、 取得できしだい表示に反映されます。

[Important] 通信に関するエラー

通信に関するエラーは戻り値では取得できません。

レンダリングの終了や、通信に関するエラーを取得する場合は、 SFZWebBrowserControl クラスを継承して、 SFZWebBrowserControl::DoneNotifyHandler 関数、または SFZWebBrowserControl::ResponseNotifyHandler 関数をオーバライドするクラスを作成する必要があります。

使用例

SFZWebBrowserControlSmp browser;
SFCError error;

if ((browser = SFZWebBrowserControl::NewInstance(&error)) != null) {
    if ((error = browser->Open()) == SFERR_NO_ERROR) {
        if ((error = browser->SetMethod("GET")) == SFERR_NO_ERRROR) {
            error = browser->Navigate("/example/tabbrowser/");
        }
    }
}

参照

SFZWebBrowserControl::Load | SFZWebBrowserControl::DoneNotifyHandler | SFZWebBrowserControl::ResponseNotifyHandler


SFZWebBrowserControl::NewInstance
新しいインスタンスを作成します。
[ public, static ]
SFZWebBrowserControlSmp NewInstance(
    SFCErrorPtr exception = null   // エラー値
);

引数

exception

関数内部で発生したエラー値を返します。

戻り値

  • 成功したとき: null 以外のポインタ
  • 失敗したとき: null ポインタ

解説

この関数は、SFZWebBrowserControl クラスの新しいインスタンスを作成します。

インスタンスの作成に成功した場合は null 以外のポインタを返します。 失敗した場合は、null ポインタを返します。

exception 引数を指定した場合、 この引数にはエラー値が返ります。

使用例

以下は、ウェブブラウザコントロールのインスタンスを生成するためのコードです。

// ウェブブラウザウィジェットのインスタンスを生成する
SFZWebBrowserControlSmp _browser;
SFCError error;

if ((_browser = SFZWebBrowserControl::NewInstance(&error)) != null) {
    // ...
}

SFZWebBrowserControl::Next
指定された値だけ履歴を進み、ページを再取得しレンダリングします。
[ public ]
SFCError Next(
    SInt32 n = 1   // 履歴を進む数
);

引数

n

履歴をいくつ進むかを指定します。 省略時は履歴を 1 つ進みます。

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • メモリ不足のとき: SFERR_NO_MEMOERY
  • n 引数に指定した値だけ進んだ位置に履歴が存在しない、または 0 を指定したとき: SFERR_INVALID_PARAM
  • 失敗したとき: SFERR_FAILED

解説

この関数は、指定された値だけ履歴を進み、ページを再取得しレンダリングします。

[Note] 注意

引数に負の値を指定すると、絶対値の数だけ履歴を戻ります。

指定された数が履歴リストから外れる場合はエラーとなり、 戻り値として SFERR_INVALID_PARAM を返します。

[Important] 通信に関するエラー

通信に関するエラーは戻り値では取得できません。

レンダリングの終了や、通信に関するエラーを取得する場合は、 SFZWebBrowserControl クラスを継承して、 SFZWebBrowserControl::DoneNotifyHandler 関数、または SFZWebBrowserControl::ResponseNotifyHandler 関数をオーバライドするクラスを作成する必要があります。

参照

SFZWebBrowserControl::Previous | SFZWebBrowserControl::Navigate | SFZWebBrowserControl::Reload | SFZWebBrowserControl::DoneNotifyHandler | SFZWebBrowserControl::ResponseNotifyHandler


SFZWebBrowserControl::Open
HTTP/HTTPS 接続を開きます。
[ public ]
SFCError Open(Void);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • HTTP/HTTPS 接続の状態が SFXHTTPConnection::STATE_CONNECT のとき: SFERR_INVALID_STATE
  • メモリ不足のとき: SFERR_NO_MEMORY

解説

この関数は、HTTP/HTTPS 接続を開きます。

HTTP/HTTPS 接続の状態は、SFXHTTPConnection::STATE_OPEN になります。

HTTP/HTTPS 接続の状態が既に SFXHTTPConnection::STATE_OPEN だった場合は何も処理を行いません。エラー値は SFERR_NO_ERROR が返ります。

SFZWebBrowserControl::Navigate 関数や、SFZWebBrowserControl::Load 関数で実際にページを開く前にこの関数を呼び出す必要があります。

参照

SFZWebBrowserControl::Navigate | SFZWebBrowserControl::Load


SFZWebBrowserControl::Previous
指定された値だけ履歴を戻り、ページを再取得しレンダリングします。
[ public ]
SFCError Previous(
    SInt32 n = 1   // 履歴を戻る数
);

引数

n

履歴をいくつ戻るかを指定します。 省略時は履歴を 1 つ戻ります。

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • メモリ不足のとき: SFERR_NO_MEMOERY
  • n 引数に指定した値だけ戻った位置に履歴が存在しない、または 0 のとき: SFERR_INVALID_PARAM
  • 失敗したとき: SFERR_FAILED

解説

この関数は、指定された値だけ履歴を戻り、ページを再取得しレンダリングします。

[Note] 注意

引数に負の値を指定すると、絶対値の数だけ履歴を進みます。

指定された数が履歴リストから外れる場合はエラーとなり、 戻り値として SFERR_INVALID_PARAM を返します。

[Important] 通信に関するエラー

通信に関するエラーは戻り値では取得できません。

レンダリングの終了や、通信に関するエラーを取得する場合は、 SFZWebBrowserControl クラスを継承して、 SFZWebBrowserControl::DoneNotifyHandler 関数、または SFZWebBrowserControl::ResponseNotifyHandler 関数をオーバライドするクラスを作成する必要があります。

参照

SFZWebBrowserControl::Next | SFZWebBrowserControl::Navigate | SFZWebBrowserControl::Reload | SFZWebBrowserControl::DoneNotifyHandler | SFZWebBrowserControl::ResponseNotifyHandler


SFZWebBrowserControl::Reload
現在表示しているページを再取得して再描画します。
[ public ]
Void Reload(Void);

解説

この関数は、現在表示しているページを再取得して再描画します。

[Caution] 注意

現在表示しているページが、 SFZWebBrowserControl::Load 関数か、 POST メソッド使用した SFZWebBrowserControl::Navigate 関数によるものである場合、 再描画に失敗します。

参照

SFZWebBrowserControl::Load | SFZWebBrowserControl::Navigate


SFZWebBrowserControl::ResponseNotifyHandler
[ハンドラ] サーバーへの接続が完了し、レンダリングが始まる前に呼び出されるハンドラです。
[ protected, virtual ]
Bool ResponseNotifyHandler(
    NotifyConstRef notify   // 通知情報
);

引数

notify

notify.u.nDone: HTTP のレスポンスコード

解説

この関数は、サーバーへの接続が完了し、レンダリングが始まる前に呼び出されるハンドラです。

デフォルトの実装以外の処理を行いたい場合は、 この関数をオーバーライドします。

デフォルトの実装は、何も行いません。

使用例

以下は、オーバーライドしてエラー処理を行うコードです。

#include <SFZResponder/SFZControl/SFZBrowserControl/SFZWebBrowserControl.hpp>

SFMTYPEDEFRESPONDER(MyBrowserControl)
class MyBrowserControl : public SFZWebBrowserControl {
    SFBSEALRESPONDER(MyBrowserControl)
    SFMRESPONDERINSTANTIATEFOUR(MyBrowserControl, SFZWebBrowserControl, SFYControl, SFYWidget, SFYResponder)
public:
    static MyBrowserControlSmp NewInstance(SFCErrorPtr exception = null);
protected:
    explicit MyBrowserControl(Void) static_throws;
    virtual ~MyBrowserControl(Void);
    virtual Void ResponseNotifyHandler(NotifyConstRef notify) {
        if (!WEB_ERROR_SUCCEEDED(notify.u.nDone)) {
            // HTTP エラーなら警告ダイアログを表示する 
            WarningDialog(notify.u.nDone);
        }
        return;
    }
};

内部実装

この関数の内部実装は以下の通りです。

/*protected virtual */Void SFZWebBrowserControl::ResponseNotifyHandler(NotifyConstRef notify)
{
    unused(notify);
    return;
}// SFZWebBrowserControl::ResponseNotifyHandler //

参照

SFZWebBrowserControl::Notify | SFZWebBrowserControl::DoneNotifyHandler | SFZWebBrowserControl::FocusNotifyHandler | SFZWebBrowserControl::JumpNotifyHandler


SFZWebBrowserControl::SetAuthorizeData
HTTP ベーシック認証の情報を設定します。
[ public ]
SFCError SetAuthorizeData(
    SFXAnsiStringConstRef user     // ユーザー名
    SFXAnsiStringConstRef passwd   // パスワード
    SFXAnsiStringConstRef url      // HTTP ベーシック認証の開始 URL
);

引数

user

ユーザー名を指定します。

passwd

パスワードを指定します。

url

URL を指定します。 この URL から始まるページが、認証の対象となります。

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • メモリ不足のとき: SFERR_NO_MEMOERY
  • HTTP/HTTPS 接続の状態が SFXHTTPConnection::STATE_OPEN でないとき: SFERR_INVALID_STATE

解説

この関数は、HTTP ベーシック認証の情報を設定します。

この関数を実行した後、 url 引数に指定した URL で始まるページへのアクセスは、 指定された認証情報を持つヘッダーをつけて行われます。

HTTP/HTTPS 接続の状態が SFXHTTPConnection::STATE_OPEN のときのみ呼び出しが成功します。

認証情報の設定を解除する時は、空文字列を指定してこの関数を呼び出します。

また、 url 引数に指定した URL で始まらないページをアクセスした場合、 認証情報は使用されません。

[Note] 注意

戻り値が SFERR_NO_ERROR 以外の場合は、ベーシック認証は行われません。

参照

SFZWebBrowserControl::Open


SFZWebBrowserControl::SetIndent
インデントの幅を設定します。[単位: ピクセル]
[ public ]
SFCError SetIndent(
    SInt32 pixel   // 設定する値
);

引数

pixel

インデントの幅を指定します。[単位: ピクセル]

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • 内部で呼び出す BREW API IHTMLVIEWER_SetOption 関数の引数に指定したオプション ID がサポートされていないとき: SFERR_UNSUPPORTED

解説

この関数は、HTML 表示のインデントの幅を設定します。[単位: ピクセル]

[Note] 注意

この関数は、内部で引数のオプション ID に "HVOPT_N_INDENT" を指定して BREW API IHTMLVIEWER_SetOption 関数を呼び出します。

参照

SFZWebBrowserControl::GetIndent | SFBHTMLViewer::SetOption | BREW API IHTMLVIEWER_SetOption


SFZWebBrowserControl::SetInlineEditEnable
フォームでの文字入力をインラインするかを設定します。
[ public ]
Void SetInlineEditEnable(
    Bool enable   // 設定する値: インラインの場合は true、フルスクリーンの場合は false
);

引数

enable

フォームでの文字入力方法を指定します。

  • インラインの場合: true
  • フルスクリーンの場合: false

解説

この関数は、HTML 表示の文字入力をインラインにするか、フルスクリーンにするかを設定します。

[Note] 注意

この関数は、内部で BREW API IHTMLVIEWER_SetProperties 関数を呼び出します。

参照

SFZWebBrowserControl::IsInlineEditEnable | SFBControl::SetProperties | BREW API IHTMLVIEWER_SetProperties


SFZWebBrowserControl::SetLinkColor
リンク文字列の表示色を設定します。
[ public ]
SFCError SetLinkColor(
    SFXRGBColorConstRef color   // リンク色
);

引数

color

リンク文字列の表示色を指定します。

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • 内部で呼び出す BREW API IHTMLVIEWER_SetOption 関数の引数に指定したオプション ID がサポートされていないとき: SFERR_UNSUPPORTED

解説

この関数は、HTML 表示のリンク文字列の表示色を設定します。

[Note] 注意

この関数は、内部で引数のオプション ID に "HVOPT_RGB_LINK" を指定して BREW API IHTMLVIEWER_SetOption 関数を呼び出します。

参照

SFZWebBrowserControl::GetLinkColor | SFZWebBrowserControl::SetTextColor | SFBHTMLViewer::SetOption | BREW API IHTMLVIEWER_SetOption


SFZWebBrowserControl::SetMethod
HTTP リクエストメソッドを設定します。
[ public ]
SFCError SetMethod(
    SFXAnsiStringConstRef param   // HTTP リクエストメソッド
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • HTTP/HTTPS 接続の状態が SFXHTTPConnection::STATE_OPEN でないとき: SFERR_INVALID_STATE
  • メモリ不足のとき: SFERR_NO_MEMORY

解説

この関数は、HTTP/HTTPS 接続の HTTP リクエストメソッドを設定します。

引数には、"GET"、"POST"、"HEAD" など BREW の IWeb インターフェースが対応している HTTP リクエストメソッドを指定できます。

デフォルト値: "GET"

設定された値は、 SFZWebBrowserControl::Close 関数が呼び出されるまで有効です。

[Note] 注意
この関数は、HTTP/HTTPS 接続の状態が SFXHTTPConnection::STATE_OPEN のときにのみ有効です。

参照

SFZWebBrowserControl::GetMethod | SFZWebBrowserControl::Open | SFZWebBrowserControl::Close | SFXAnsiString | BREW API IWeb


SFZWebBrowserControl::SetParagraphSpacing
段落間の行間の長さを設定します。[単位: ピクセル]
[ public ]
SFCError SetParagraphSpacing(
    SInt32 pixel   // 設定する値
);

引数

pixel

段落間の行間の長さを指定します。[単位: ピクセル]

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • 内部で呼び出す BREW API IHTMLVIEWER_SetOption 関数の引数に指定したオプション ID がサポートされていないとき: SFERR_UNSUPPORTED

解説

この関数は、HTML 表示の段落間の行間の長さを設定します。[単位: ピクセル]

[Note] 注意

この関数は、内部で引数のオプション ID に "HVOPT_N_VSPACE" を指定して BREW API IHTMLVIEWER_SetOption 関数を呼び出します。

参照

SFZWebBrowserControl::GetParagraphSpacing | SFBHTMLViewer::SetOption | BREW API IHTMLVIEWER_SetOption


SFZWebBrowserControl::SetProxyServer
プロキシサーバーを設定します。
[ public ]
SFCError SetProxyServer(
    SFXSocketAddressConstRef param   // プロキシサーバー
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • HTTP/HTTPS 接続の状態が SFXHTTPConnection::STATE_OPEN でないとき: SFERR_INVALID_STATE
  • メモリ不足のとき: SFERR_NO_MEMORY

解説

この関数は、HTTP/HTTPS 接続のプロキシサーバー(SFXSocketAddress)を設定します。

設定された値は、 SFZWebBrowserControl::Close 関数が呼び出されるまで有効です。

[Note] 注意
この関数は、HTTP/HTTPS 接続の状態が SFXHTTPConnection::STATE_OPEN のときにのみ有効です。

参照

SFZWebBrowserControl::GetProxyServer | SFZWebBrowserControl::Open | SFZWebBrowserControl::Close | SFXSocketAddress


SFZWebBrowserControl::SetRequestContent
HTTP リクエストボディにストレージまたはソースを設定します。
[ public ]
SFCError SetRequestContent(
    SFXFileConstRef file   // HTTP リクエストボディに設定するファイルストレージ
);
[ public ]
SFCError SetRequestContent(
    SFXMemoryConstRef memory   // HTTP リクエストボディに設定するメモリストレージ
);
[ public ]
SFCError SetRequestContent(
    SFXStorageConstRef storage   // HTTP リクエストボディに設定するストレージ
    SInt32 length                // ストレージの長さ
);
[ public ]
SFCError SetRequestContent(
    SFBSourceSmpConstRef source   // HTTP リクエストボディに設定するソース
    SInt32 length                 // ソースの長さ
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • 引数が null のとき: SFERR_INVALID_PARAM
  • HTTP/HTTPS 接続の状態が SFXHTTPConnection::STATE_OPEN でないとき、または引数に指定したストレージ/SFBSource インスタンスが開いていないとき: SFERR_INVALID_STATE
  • メモリ不足のとき: SFERR_NO_MEMORY

解説

この関数は、 HTTP/HTTPS 接続の HTTP リクエストボディにストレージまたはソースを設定します。

引数にファイルストレージまたはメモリストレージだけを指定したとき、 そのストレージ全体の長さが自動的に設定されます。

length 引数を指定する場合、 ストレージまたはソースの現在の読み書きポインタの位置から指定した長さ分のデータが HTTP リクエストボディに設定されます。

[Tip] Tip

SFZWebBrowserControl::SetRequestContent 関数を使用してファイルストレージ(SFXFile)を設定すると、 ファイルから直接ネットーワークへデータが送信可能となり、 大きなサイズのデータを送信できます。

SFZWebBrowserControl::GetStreamWriter 関数を使用してデータを送信する場合、 一旦ヒープ上に HTTP リクエストボディが作成されるため、 送信可能なデータサイズは携帯電話に搭載されているメモリ容量に依存することになります。

[Caution] HTTP リクエストボディの作成

SFZWebBrowserControl::SetRequestContent 関数を使用して HTTP リクエストボディを作成する場合は、 SFZWebBrowserControl::GetStreamWriter 関数を使えません。

逆に、SFZWebBrowserControl::GetStreamWriter 関数を使用して HTTP リクエストボディを作成する場合は、 SFZWebBrowserControl::SetRequestContent 関数を使えません。

設定された値は、 SFZWebBrowserControl::Close 関数が呼び出されるまで有効です。

[Note] 注意
この関数は、HTTP/HTTPS 接続の状態が SFXHTTPConnection::STATE_OPEN のときにのみ有効です。
[Note] 注意

SFZWebBrowserControl::SetRequestContent 関数は、 SophiaFramework UNIVERSE 5.1.11 以降有効です。

参照

SFZWebBrowserControl::GetRequestContent | SFZWebBrowserControl::GetStreamWriter | SFZWebBrowserControl::Open | SFZWebBrowserControl::Close | SFBSource | SFXStorage


SFZWebBrowserControl::SetRequestFlag
HTTP リクエストフラグを設定します。
[ public ]
SFCError SetRequestFlag(
    UInt32 param   // HTTP リクエストフラグ
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • HTTP/HTTPS 接続の状態が SFXHTTPConnection::STATE_OPEN でないとき: SFERR_INVALID_STATE

解説

この関数は、HTTP/HTTPS 接続の HTTP リクエストフラグを設定します。

[Note] 注意
HTTP リクエストフラグは、内部的に IWEB_GetResponse 関数に渡されます。

具体的には、以下のフラグの論理和として設定します。

  • WEBREQUEST_REDIRECT: リダイレクトを自動的に処理します。 (BREW の HTTP プロトコルエンジンには実装されていない)
  • WEBREQUEST_NOCOOKIES: クッキーを処理せずに、ヘッダをそのまま渡します。 (BREW の HTTP プロトコルエンジンには実装されていないが、この動作はデフォルト)
  • WEBREQUEST_NOCACHE: プロキシを使用する場合に、"Pragma: no-cache" を送信します。 (BREW の HTTP プロトコルエンジンには実装されていない)
  • WEBREQUEST_NOKEEPALIVE: キープアライブを無効にします。
  • WEBREQUEST_FORCENEWCONN: 新規接続を強制します。
  • WEBREQUEST_NOWAITCONN: 再利用可能な接続を待たずに、新規接続を行います。
  • WEBREQUEST_HTTPBOGUSCRLF: CERN Webserver のバグを回避するために、余分な CRLF を追加します。

設定された値は、 SFZWebBrowserControl::Close 関数が呼び出されるまで有効です。

[Note] 注意
この関数は、HTTP/HTTPS 接続の状態が SFXHTTPConnection::STATE_OPEN のときにのみ有効です。

参照

SFZWebBrowserControl::GetRequestFlag | SFZWebBrowserControl::Open | SFZWebBrowserControl::Close | BREW API IWEB_GetResponse


SFZWebBrowserControl::SetRequestHeader
HTTP リクエストヘッダーを設定します。
[ public ]
SFCError SetRequestHeader(
    SFXAnsiStringConstRef key     // ヘッダーの名前
    SFXAnsiStringConstRef value   // ヘッダーの値
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • ヘッダーの名前が User-Agent、Content-Length、Connection のいずれかであったとき:SFERR_INVALID_PARAM
  • HTTP/HTTPS 接続の状態が SFXHTTPConnection::STATE_OPEN でないとき: SFERR_INVALID_STATE
  • メモリ不足のとき: SFERR_NO_MEMORY

解説

この関数は、HTTP/HTTPS 接続の HTTP リクエストヘッダーを設定します。

同一の key で複数回呼ばれた場合は、すべて記憶してリクエスト時に送信されます。

設定された値は、 SFZWebBrowserControl::Close 関数を呼び出すまで有効です。

[Note] 注意
この関数は、HTTP/HTTPS 接続の状態が SFXHTTPConnection::STATE_OPEN のときにのみ有効です。

参照

SFZWebBrowserControl::GetRequestHeader | SFZWebBrowserControl::Open | SFZWebBrowserControl::Close


SFZWebBrowserControl::SetScrollbarEnable
スクロールバーの有無を設定します。
[ public ]
Void SetScrollbarEnable(
    Bool enable   // 設定する値: スクロールバー有りの場合は true、無しの場合は false
);

引数

enable

スクロールバーの有無を指定します。

  • スクロールバー有りの場合: true
  • スクロールバー無しの場合: false

解説

この関数は、スクロールバーの有無を設定します。

[Note] 注意

この設定で表示されるスクロールバーは、 SophiaFramework UNIVERSE で実装されているものではなく、 BREW API IHtmlViewer インターフェースのスクロールバーです。

参照

SFZWebBrowserControl::IsScrollbarEnable | SFBControl::SetProperties | BREW API IHTMLVIEWER_SetProperties


SFZWebBrowserControl::SetScrollbarWidth
スクロールバーの幅を設定します。[単位: ピクセル]
[ public ]
SFCError SetScrollbarWidth(
    SInt32 pixel   // 設定する値
);

引数

pixel

スクロールバーの幅を指定します。[単位: ピクセル]

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • 内部で呼び出す BREW API IHTMLVIEWER_SetOption 関数の引数に指定したオプション ID がサポートされていないとき: SFERR_UNSUPPORTED

解説

この関数は、HTML 表示のスクロールバーの幅を設定します。[単位: ピクセル]

[Note] 注意

この関数は、内部で引数のオプション ID に "HVOPT_N_SBWIDTH" を指定して BREW API IHTMLVIEWER_SetOption 関数を呼び出します。

参照

SFZWebBrowserControl::GetScrollbarWidth | SFBHTMLViewer::SetOption | BREW API IHTMLVIEWER_SetOption


SFZWebBrowserControl::SetTextColor
テキストの表示色を設定します。
[ public ]
SFCError SetTextColor(
    SFXRGBColorConstRef color   // 設定する値
);

引数

color

テキストの表示色を指定します。

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • 内部で呼び出す BREW API IHTMLVIEWER_SetOption 関数の引数に指定したオプション ID がサポートされていないとき: SFERR_UNSUPPORTED

解説

この関数は、HTML 表示のテキストの表示色を設定します。

[Note] 注意

この関数は、内部で引数のオプション ID に "HVOPT_RGB_TEXT" を指定して BREW API IHTMLVIEWER_SetOption 関数を呼び出します。

参照

SFZWebBrowserControl::GetTextColor | SFZWebBrowserControl::SetLinkColor | SFBHTMLViewer::SetOption | BREW API IHTMLVIEWER_SetOption


SFZWebBrowserControl::SetTimeoutCallback
接続タイムアウトコールバックを設定します。
[ public ]
Void SetTimeoutCallback(
    SFXCallback::CallbackSPP spp   // コールバック関数
    VoidPtr reference              // コールバック関数に渡すデータ(参照値)
);

解説

この関数は、 通信開始から接続タイムアウト時間を過ぎても応答がない場合に呼び出されるコールバック関数を設定します。

コールバック関数を設定しなかった場合は、 SFXHTTPConnection::OnTimeoutDefault 関数が登録されていることになります。

SFXHTTPConnection::OnTimeoutDefault 関数は、以下の内部実装コードにあるように、 SFXHTTPConnection::Cancel 関数を呼び出して通信をキャンセルします。

/*private */XALLBACK_IMPLEMENT_SFXTIMER(SFXHTTPConnection, OnTimeoutDefault)
{
    Cancel();
    return;
}// XALLBACK_IMPLEMENT_SFXTIMER(SFXHTTPConnection, OnTimeoutDefault)
[Note] 注意

接続タイムアウト時間は、 SFZWebBrowserControl::SetTimeoutMillisecond 関数を利用して設定します。

参照

SFZWebBrowserControl::SetTimeoutMillisecond | SFXHTTPConnection::Cancel


SFZWebBrowserControl::SetTimeoutMillisecond
接続タイムアウト時間を設定します 。[単位: ミリ秒]
[ public ]
Void SetTimeoutMillisecond(
    UInt32 msec   // 接続タイムアウト時間 [単位: ミリ秒]
);

解説

この関数は、 接続タイムアウト時間を設定します 。[単位: ミリ秒]

デフォルト値: 0(タイムアウト処理を行いません)

通信開始からタイムアウト時間を過ぎても応答がない場合、 SFZWebBrowserControl::SetTimeoutCallback 関数で設定する接続タイムアウトコールバックが呼び出されます。

[Note] 注意

接続タイムアウト時間が 0 のとき、タイムアウト処理を行いません。

参照

SFZWebBrowserControl::GetTimeoutMillisecond | SFZWebBrowserControl::SetTimeoutCallback


SFZWebBrowserControl::SetTrustMode
HTTPS 通信の SSL 認証モードを設定します。
[ public ]
SFCError SetTrustMode(
    UInt32 param   // SSL 認証モード
);

引数

param

以下の 4 種類の何れかの SSL 認証モードを指定します。

  • SSL_TRUST_MODE_FAIL: デフォルトです。認証エラーがあると接続が失敗します。
  • SSL_TRUST_MODE_CHECK: 認証エラーの場合、チェックまたは無効にできるように中断します。
  • SSL_TRUST_MODE_IGNORE: すべての認証エラーを無効にします。
  • SSL_TRUST_MODE_ALWAYS: 認証をチェックできるように常に中断します。

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • HTTP/HTTPS 接続の状態が SFXHTTPConnection::STATE_OPEN でないとき: SFERR_INVALID_STATE

解説

この関数は、HTTPS 通信の SSL 認証モードを設定します(HTTPS 通信の場合に有効です)。

デフォルト値: SSL_TRUST_MODE_FAIL

設定可能な SSL 認証モードは、 以下の 4 種類です(参照: BREW API ISSL_NegotiateV)。

  • SSL_TRUST_MODE_FAIL: トラストエラーがあると接続が失敗します。[デフォルト]
  • SSL_TRUST_MODE_CHECK: トラストエラーの場合、チェックまたは無視できるように中断します。
  • SSL_TRUST_MODE_IGNORE: すべてのトラストエラーを無視します。
  • SSL_TRUST_MODE_ALWAYS: トラストをチェックできるように常に中断します。

設定された値は、 SFZWebBrowserControl::Close 関数が呼び出されるまで有効です。

実機において、この値を変更した直後の SFZWebBrowserControl::Navigate 関数の呼び出しでは SSL_RESULT_SERV_VERS エラーが発生することがあります。

エラーを避けるには、一度 SFZWebBrowserControl::Close 関数を呼び出してからSSL 認証モードを設定し、 SFZWebBrowserControl::Navigate 関数を呼び出します。

[Note] 注意

詳細情報: BREW API ISSL_NegotiateV

[Note] 注意

この関数は、HTTP/HTTPS 接続の状態が SFXHTTPConnection::STATE_OPEN のときにのみ有効です。

参照

SFZWebBrowserControl::GetTrustMode | SFZWebBrowserControl::Navigate | SFZWebBrowserControl::Open | SFZWebBrowserControl::Close | BREW API ISSL_NegotiateV


SFZWebBrowserControl::SetUserAgent
ユーザーエージェントを設定します。
[ public ]
SFCError SetUserAgent(
    SFXAnsiStringConstRef param   // ユーザーエージェント
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • HTTP/HTTPS 接続の状態が SFXHTTPConnection::STATE_OPEN でないとき: SFERR_INVALID_STATE
  • メモリ不足のとき: SFERR_NO_MEMORY

解説

この関数は、HTTP/HTTPS 接続のユーザーエージェントを設定します。

設定された値は、 SFZWebBrowserControl::Close 関数が呼び出されるまで有効です。

[Note] 注意
この関数は、HTTP/HTTPS 接続の状態が SFXHTTPConnection::STATE_OPEN のときにのみ有効です。

参照

SFZWebBrowserControl::GetUserAgent | SFZWebBrowserControl::Open | SFZWebBrowserControl::Close | SFXAnsiString


SFZWebBrowserControl::SetWebClassId
HTTP/HTTPS 接続を開く際の Web クラス ID を設定します。
[ public ]
Void SetWebClassId(
    AEECLSID id   // Web クラス ID
);

解説

HTTP/HTTPS 接続を開く際の Web クラス ID を設定します。

設定内容は、次回 SFZWebBrowserControl::Open 関数を呼び出す際に有効になります。

デフォルト値は、AEECLSID_WEB です。

参照

SFZWebBrowserControl::GetWebClassId | SFZWebBrowserControl::Open


SFZWebBrowserControl::Stop
レンダリングを行っている場合、その処理を中断します。
[ public ]
Void Stop(Void);

解説

この関数は、レンダリングを行っている場合、その処理を中断します。

[Note] 注意

レンダリング中以外ならば何も行いません。 表示済みの部分に対しては、影響を与えません。

参照

SFZWebBrowserControl::~SFZWebBrowserControl


SFZWebBrowserControl::CodeEnum
SFZWebBrowserControl クラスを表す定数です。
enum CodeEnum {
    CODE_TYPE = four_char_code('c', 'h', 't', 'm')
};
SFMTYPEDEFTYPE(CodeEnum)

参照

SFYResponder::GetType | SFYResponder::SetType


SFZWebBrowserControl::Notify
ビューアや通信コールバックから通知される構造体です。
[ public ]
SFMTYPEDEFSTRUCT(Extension)
struct Extension {
    SFXAnsiString       absoluteURL;
};

SFMTYPEDEFSTRUCT(Notify)
class Notify : public HViewNotify {
public:
    Extension           ex;
                        Notify          (HViewNotify const& hvNotify);
                        Notify          (NotifyConstRef notify);
};

// HViewNotify:  notification data
//
typedef struct {
    HVNotifyCode        code;           // notification code
    IHtmlViewer*        phv;            // identifies IHtmlViewer that sent the notification

    union {
      HViewJump         jump;           // HVN_JUMP
      HViewJump         submit;         // HVN_SUBMIT
      int               nDone;          // HVN_DONE
      HViewFocus        focus;          // HVN_FOCUS
    } u;
} HViewNotify;

#ifdef _WIN32
typedef unsigned HVNotifyCode;
#else
typedef int8 HVNotifyCode;
#endif

解説

この型は、 BREW API HViewNotify から派生しています。

通知コールバック関数 (SFZWebBrowserControl::ResponseNotifyHandler, SFZWebBrowserControl::DoneNotifyHandler, SFZWebBrowserControl::JumpNotifyHandler, SFZWebBrowserControl::FocusNotifyHandler) の引数として渡されるデータの型です。

Notify 構造体は、HViewNotify 構造体に Extension 構造体が追加された形になります。

ex.absoluteURL は SFZWebBrowserControl::JumpNotifyHandler 関数で通知されるときのみ使用され、ジャンプ先の絶対 URL を表します。

SFZWebBrowserControl::ResponseNotifyHandler 関数による通知では、u.nDone に HTTP 通信の結果コードが格納されます。

その他の通知コールバック関数におけるメンバ変数の役割は、IHTMLViewer の BREW API HViewNotify の仕様に準じます。

参照

SFZWebBrowserControl::ResponseNotifyHandler | SFZWebBrowserControl::DoneNotifyHandler | SFZWebBrowserControl::JumpNotifyHandler | SFZWebBrowserControl::FocusNotifyHandler | BREW API HViewNotify | BREW API WEB_ERROR_SUCCEEDED | BREW API WEB_ERROR_MAP