| top | overview | download | install | customize | library | |
| help | developer | history | support | |||
開発者向け bookmark
拡張パーサー bookmark
RSSクリップには拡張パーサーという機能があり、非RSSフィードなどのデータを取り込むことができます。
RSSクリップの配布モジュールにも、標準で以下の拡張パーサーが同梱されています。
- mixi用の拡張パーサー
- 2ちゃんねる掲示板用の拡張パーサー
独自の拡張パーサーを作成することにより、非RSSフィード以外のデータとして作成されたXML、CSV、HTMLなどのデータを取り込むことが可能です。
このページでは独自の拡張パーサーを開発する方を対象に、拡張パーサーの仕様や作り方について説明します。
概要 bookmark
拡張パーサーは以下の関数を実装したDLL形式のモジュールになります。
RSSクリップ本体は拡張パーサーに実装された関数を通して情報の取得や処理の依頼を行います。
| 関数名 | 内容 |
| GetParserInfo | 拡張パーサーに関する情報取得 |
| ParseContents | 取得したデータから登録するデータを解析 |
| EnumContents | 拡張パーサーがサポートするコンテンツの取得 |
| 項目 | 内容 |
| モジュールの形式 | DLL |
| 格納パス | RSSクリップをインストールしたフォルダのParserフォルダ |
RSSクリップではデータを取得する前に、取得するRSSフィードのURLを登録する必要があります。
通常はRSSフィードのURLを登録しますが、拡張パーサーを利用する場合は、その拡張パーサーがサポートするコンテンツのURLを登録します。
例えば、mixi用拡張パーサーは、通常ブラウザーで閲覧するサイトのURLを登録し、拡張パーサーが内容を解析してRSSクリップにデータを追加します。
また、拡張パーサーはサポートするコンテンツのURLを利用者に提示することができます。
下図はRSS・ATOMフィードを登録する画面ですが、そのパーサーがサポートするコンテンツのURL(名前)をメニューで表示しています。

この機能を利用することにより、利用者がコンテンツのURLを入力する手間を省けます。
実際にRSSクリップがどのようなシーケンスで拡張パーサーとやり取りを行うか説明します。
RSSクリップ本体と拡張パーサーのやり取りは、コンテンツ登録時と実際にデータの解析処理を行う2ケースに分けられます。
コンテンツ登録 bookmark
- 拡張パーサーの情報取得
[RSS・ATOMの登録]ダイアログを開くと、RSSクリップ本体はインストールされている拡張パーサーを探し出して、GetParserInfo関数をコールします。
GetParserInfo関数から取得情報を元に、[RSS・ATOMの登録]ダイアログ内にある拡張パーサーの選択用コンボボックスに登録します。この処理により、拡張パーサーを選択できるようになります。 - サポートコンテンツの情報取得
利用者が拡張パーサーを選択すると、EnumContents関数をコールします。
EnumContents関数は、拡張パーサーがサポートしているコンテンツ情報を取得して、登録作業を簡略化するためのメニューを表示します。
EnumContents関数の実装は必須ではありませんし、実装してもサポートしているコンテンツ情報を返さなければメニューは表示されません。 - コンテンツの登録
利用者が設定した情報を登録すると、登録処理は完了してコンテンツを取得できるようになります。
コンテンツ解析 bookmark
登録されたコンテンツの取得はRSSクリップ本体が行います。拡張パーサーは通信を行う必要はありません。
取得したコンテンツは、ファイルに保存します。保存したファイルはキャッシュとして利用されます。
コンテンツの取得に成功すると、対応する拡張パーサーのParseContents関数がコールされます。
ParseContents関数では、実際に取得したコンテンツのファイル名が渡され、解析を行った後にRSSクリップにデータが登録されます。
仕様 bookmark
- GetParserInfo関数
プラグインの関する情報を取得するためにコールされます。GetParserInfo関数は、引数に指定されたPARSERSTRUCT構造体にプラグインの情報を格納します。
- EnumContents関数
拡張パーサーがサポートするコンテンツに関する情報を取得するためにコールされます。この関数では引数に指定されたコールバック関数を呼び出すことにより、情報を通知します。
- ParseContents関数
実際にコンテンツを解析してRSSクリップにデータを登録します。この関数では引数に指定されたコールバック関数を呼び出すことにより、情報を通知します。
※EnumContents、ParseContents関数ではメモリを介したデータの受け渡しではなく、コールバック関数を使用してデータを通知する方式になっています。
リファレンス bookmark
GetParserInfo bookmark
- BOOL WINAPI GetParserInfo(LPPARSERSTRUCT lpParserStruct);
- 概要
拡張パーサーの情報を取得します。 - 引数
- LPPARSERSTRUCT lpParserStruct
拡張パーサーの情報を格納するPARSERSTRUCT構造体へのポインタ
- LPPARSERSTRUCT lpParserStruct
- 戻り値
- BOOL
TRUE : 正常終了
FALSE : 処理失敗
- BOOL
- 概要
EnumContents bookmark
- BOOL WINAPI EnumContents(DWORD dwParserID, lpfnParseCallBack function);
- 概要
拡張パーサーがサポートするコンテンツに関する情報を取得します。 - 引数
- DWORD dwParserID
RSSクリップ本体が割り当てた拡張パーサー用のID - lpfnParseCallBack function
データを通知するためのコールバック関数へのポインタ
- DWORD dwParserID
- 戻り値
- BOOL
TRUE : 正常終了
FALSE : 処理失敗
- BOOL
- 概要
ParseContents bookmark
- BOOL WINAPI ParseContents(LPCTSTR lpszURL, LPCTSTR lpszFileName, DWORD dwParserID, lpfnParseCallBack function);
- 概要
拡張パーサーがサポートするコンテンツに関する情報を取得します。 - 引数
- LPCTSTR lpszURL
コンテンツURL - LPCTSTR lpszFileName
コンテンツを保存したファイル名 - DWORD dwParserID
RSSクリップ本体が割り当てた拡張パーサー用のID - lpfnParseCallBack function
データを通知するためのコールバック関数へのポインタ
- LPCTSTR lpszURL
- 戻り値
- BOOL
TRUE : 正常終了
FALSE : 処理失敗
- BOOL
- 概要
ParseCallBackコールバック関数 bookmark
- void ParseCallBack(DWORD dwParserID, LPNONRSSARTICLESTRUCT lpNonRssArticleStruct);
- 概要
拡張パーサーがサポートするコンテンツ情報を通知します。複数ある場合は複数回呼び出す必要があります。 - 引数
- DWORD dwParserID
RSSクリップ本体が割り当てた拡張パーサー用のID - LPNONRSSARTICLESTRUCT lpNonRssArticleStruct
コンテンツ情報を格納したNONRSSARTICLESTRUCT構造体へのポインタ
- DWORD dwParserID
- 戻り値
- BOOL
TRUE : 正常終了
FALSE : 処理失敗
- BOOL
- 概要
ParseCallBackコールバック関数 bookmark
- void ParseCallBack(DWORD dwParserID, LPNONRSSARTICLESTRUCT lpNonRssArticleStruct);
- 概要
解析した記事情報を通知します。複数ある場合は複数回呼び出す必要があります。 - 引数
- DWORD dwParserID
RSSクリップ本体が割り当てた拡張パーサー用のID - LPNONRSSARTICLESTRUCT lpNonRssArticleStruct
記事情報を格納したNONRSSARTICLESTRUCT構造体へのポインタ
- DWORD dwParserID
- 戻り値
- BOOL
TRUE : 正常終了
FALSE : 処理失敗
- BOOL
- 概要
NONRSSARTICLESTRUCT構造体 bookmark
- guidは記事を一意に識別するための文字列です。この識別子は別の記事と同じにならないようなユニークな文字列を拡張パーサーで生成する必要があります。
サンプル bookmark
WindowsのINIファイル形式のフォーマットで作成されたコンテンツ用の拡張パーサーです。
拡張パーサーの基本的な作成方法の参考になります。
サンプルプログラムは、Microsoft Visual Studio C++ 6.0で作成されています。
- サンプル拡張パーサーのソース一式
拡張パーサーの作成に必要な定義ファイルを含む- ダウンロード(24.4kb)
|
|
||



