JP2008535081A - 開発者がシステム上の周知のロケーションを容易に発見し、または拡張するための能力 - Google Patents

開発者がシステム上の周知のロケーションを容易に発見し、または拡張するための能力 Download PDF

Info

Publication number
JP2008535081A
JP2008535081A JP2008504005A JP2008504005A JP2008535081A JP 2008535081 A JP2008535081 A JP 2008535081A JP 2008504005 A JP2008504005 A JP 2008504005A JP 2008504005 A JP2008504005 A JP 2008504005A JP 2008535081 A JP2008535081 A JP 2008535081A
Authority
JP
Japan
Prior art keywords
interface
folder
application programming
new
known folder
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008504005A
Other languages
English (en)
Other versions
JP4972082B2 (ja
Inventor
ラワット,アンシュル
ウェンツ,ブライアン・ディー
グザック,クリス・ジェイ
デ・ボルチック,ディビッド・ジー
ブレザック,ジョン・イー
チュー,ミング
サムジ,モハメド・エイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2008535081A publication Critical patent/JP2008535081A/ja
Application granted granted Critical
Publication of JP4972082B2 publication Critical patent/JP4972082B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/168Details of user interfaces specifically adapted to file systems, e.g. browsing and visualisation, 2d or 3d GUIs
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99934Query formulation, input preparation, or translation

Abstract

周知のロケーションに格納されるフォルダを作成しアクセスする方法およびデータ構造。本データ構造および方法は、システム上の周知のフォルダを作成し管理するための、かつ/または特定の周知のフォルダを位置決めするための1組のAPIを使用する。本発明は、周知のフォルダを作成し、位置決めし、拡張し、列挙するためのインターフェイスを提供する。さらに、本発明は、開発者および/またはユーザがプロパティまたは周知のフォルダのプロパティをカスタマイズすることを可能にする。

Description

本発明は概して、1組のアプリケーションプログラミングインターフェイスを用いた、周知のロケーションに格納されるフォルダの作成および管理に関する。
今日、開発者およびユーザは通常、様々なアプリケーションからのデータを、マイドキュメントフォルダやマイピクチャフォルダなど、特定の周知のフォルダに格納する。こうした周知のフォルダは、開発者およびユーザが情報にアクセスするために、多数のアプリケーションおよびコンピュータネットワーク環境に渡る容易なアクセスを提供する。こうした周知のフォルダは、Windows(登録商標)ブランドのオペレーティングシステムなどのオペレーティングシステムにおいて使用される。
たとえば、多くのアプリケーションは、インストールされる特定のアプリケーションに利用可能なデータを格納するマイドキュメントフォルダなど、特定の周知のフォルダを使用する。マイドキュメントフォルダの使用により、他のアプリケーションに対して、格納された情報にアクセスする能力を可能にする。たとえば、jpegファイルは、いくつかの写真公開(photo publishing)アプリケーションによって使用され得る。特定の写真公開アプリケーションは、他の写真公開アプリケーションがjpegファイルにアクセスすることができるように、マイドキュメントフォルダなど、周知のフォルダにjpegファイルを格納することができる。しかし、多数のアプリケーションファイルおよびフォルダをマイドキュメントフォルダの下に置くと、フォルダのリストが系統化されていない状態となり、特定のフォルダおよびデータの検索を煩雑かつ時間のかかるものとしてしまう。
マイクロソフト(登録商標)Windows(登録商標)などの既存のオペレーティングシステムは、シェル(Shell)を使用して、フォルダおよびファイルなどのデータオブジェクトを、ユーザインターフェイスまたはアプリケーションにより階層状の名前空間構造に系統化する。シェルは、そのロケーションおよび存在がシステムに知られ得るとともにそれに対するアクセスがスタートメニューなどのシェル中の数多くの場所から与えられる特殊なフォルダを含み得る。シェルは、こうした周知のフォルダを管理するための、1組のSHFolderPath APIを開発者およびユーザに提供し得る。SHFolderPath APIは、固定された1組のCSIDLを使用し得る。CSIDLは、フォルダを識別するのに使われる序数値を含み、アプリケーションによって頻繁に使われる特殊なフォルダを識別するための、独自のシステム非依存の方法を提供する。ディスクまたはドライブ上の周知のフォルダのロケーションでCSIDLをマップするために、テーブルが使用される。マイクロソフト(登録商標)Windows(登録商標)XPなど、既存のオペレーティングシステムの現在のバージョンでは、既知のフォルダは、CSIDLが拡張可能でないように、拡張可能ではない。さらに、既存のオペレーティングシステムにおける既存の既知のフォルダへの新規プロパティの追加も可能ではない。
したがって、開発者およびユーザが、様々なアプリケーションによって使用するために自分用の既知のフォルダを作成し得る方法およびデータ構造を提供することが、当該分野における進歩であろう。さらに、開発者またはユーザによって使用され得る既存のならびに新規の既知のフォルダに新規またはカスタムプロパティを追加することも進歩であろう。こうしたカスタムプロパティは、たとえば、開発者またはユーザに、既知のフォルダの意図した使用法を知らせることができる。さらに、本方法およびデータ構造は、同一のコンピュータ上またはネットワーク上に置かれ得る様々なアプリケーションによって作成された他の既知のフォルダを、ユーザが最低限の作業量で見つけ出し使用することを可能にするものである。
本発明の方法およびデータ構造は、システム上の既知のロケーションを列挙するための、かつ/または特定の周知のロケーションを位置決めするための1組のAPIを提供することによって、従来技術の課題を克服する。具体的には、本発明は、周知のフォルダを位置決めし、拡張し、列挙する機能性を提供する。さらに、本発明は、開発者および/またはユーザが周知のフォルダのプロパティをカスタマイズすることを可能にする。
添付の図面を併せ見て以下の説明を参照することによって、本発明がより完全に理解され、本発明の利点が理解されよう。図面において、同じ参照番号は同じ特徴を示す。
本発明の開示内容を明らかにするために、ここで、いくつかの関連用語の定義が与えられる。
プロファイル:オペレーティングシステムおよびアプリケーションに、ユーザ固有データおよび設定を格納するための、ユーザごとのロケーションを与える。
既知のフォルダ/KnownFolder:Windows(登録商標)シェルならびに他のコンポーネントおよびアプリケーションに対して知らされるフォルダのカテゴリ。
SHFolderPath()API:SHGetFolderLocation()、SHGetFolderPath()、およびSHSetFolderPath()を含む1組のシェルフォルダAPI。
CSIDL:フォルダを識別し、アプリケーションによって頻繁に使われる特殊フォルダの、システム非依存の一意の識別法を提供するのに使われる序数値。
図1は、本発明が実施され得る、適切なコンピューティングシステム環境100の例を示す。コンピューティングシステム環境100は、適切なコンピューティング環境の一例に過ぎず、本発明の利用または機能性の範囲に対するどのような限定を示唆することも意図されない。コンピューティング環境100は、例示的な動作環境100に示されるどのコンポーネントまたはその組合せに関するどのような依存も要件も有していると解釈されるべきでない。
図1を参照すると、本発明を実施する例示的なシステムは、汎用コンピューティングデバイスを、コンピュータ110の形で含む。コンピュータ110のコンポーネントは、処理ユニット120と、システムメモリ130と、システムメモリなど様々なシステムコンポーネントを処理ユニット120に結合するシステムバス121とを含み得るが、それに限定されない。システムバス121は、様々なバスアーキテクチャのいずれかを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスなどいくつかのタイプのバス構造のいずれでもよい。限定ではなく例として、このようなアーキテクチャは、ISA(業界標準アーキテクチャ)バス、MCA(マイクロチャネルアーキテクチャ)バス、EISA(拡張ISA)バス、VESA(米国ビデオ電子装置規格化協会)ローカルバス、およびメザニン(Mezzanine)バスとしても知られるPCI(周辺装置相互接続)バスを含む。
コンピュータ110は通常、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ110によってアクセスされ得るとともに揮発性媒体および不揮発性媒体両方、取外し可能媒体および固定式媒体を含む、利用可能などの媒体でもよい。限定ではなく例として、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含み得る。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を格納するためのどの方法でも技術でも実施される揮発性媒体および不揮発性媒体両方、取外し可能媒体および固定式媒体を含む。コンピュータ記憶媒体は、RAM、ROM、EPROM、フラッシュメモリまたは他のメモリ技術、CD−ROM、DVD(デジタル多用途ディスク)または他の光学ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、あるいは、所望の情報を格納するのに使われ得るとともにコンピュータ110によってアクセスされ得る他のどの媒体も含むが、それに限定されない。通信媒体は一般に、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを、変調データ信号、たとえば搬送波や他の移送機構として具体化し、どの情報配信媒体も含む。「変調データ信号」という用語は、信号中の情報を符号化するようなやり方で設定され、または変更される信号特性の1つまたは複数を有する信号を意味する。限定ではなく例として、通信媒体は、有線ネットワークや直接有線接続などの有線媒体、ならびに音響、RF、赤外線、および他の無線媒体などの無線媒体を含む。上記のどの組合せも、やはりコンピュータ可読媒体の範囲に含まれるべきである。
システムメモリ130は、コンピュータ記憶媒体を、ROM(読出し専用メモリ)131およびRAM(ランダムアクセスメモリ)132など、揮発性および/または不揮発性メモリの形で含む。BIOS(基本入出力システム)133は、たとえば起動中にコンピュータ110内部の要素間での情報の転送を助ける基本ルーチンを含み、通常はROM131に格納される。RAM132は一般に、処理ユニット120に対してただちにアクセス可能な、かつ/または処理ユニット120によって現在操作されているデータおよび/またはプログラムモジュールを含む。限定ではなく例として、図1では、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137を示す。
コンピュータ110は、他の取外し可能/固定式、揮発性/不揮発性コンピュータ記憶媒体も含み得る。単なる例として、図1では、固定式不揮発性磁気媒体からの読出しまたはそこへの書込みを行うハードディスクドライブ140、取外し可能な不揮発性磁気ディスク152からの読出しまたはそこへの書込みを行う磁気ディスクドライブ151、および、CD ROMや他の光学媒体など取外し可能な不揮発性光ディスク156からの読出しまたはそこへの書込みを行う光ディスクドライブ155を示す。例示的な動作環境で使われ得る他の取外し可能/固定式、揮発性/不揮発性コンピュータ記憶媒体は、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、固体状態RAM、固体状態ROMなどを含むが、それに限定されない。ハードディスクドライブ141は通常、インターフェイス140などの固定式メモリインターフェイスによって、システムバス121に接続され、磁気ディスクドライブ151および光ディスクドライブ155は通常、インターフェイス150などの取外し可能メモリインターフェイスによって、システムバス121に接続される。
上述し、かつ図1に示されているドライブおよびそれに関連するコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、およびコンピュータ110のための他のデータの格納を可能にする。図1では、たとえば、ハードディスクドライブ141は、オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147を格納するものとして示される。こうしたコンポーネントは、オペレーティングシステム134、アプリケーションプログラム135、他のプログラムモジュール136、およびプログラムデータ137と同じでも、異なってもよいことに留意されたい。オペレーティングシステム144、アプリケーションプログラム145、他のプログラムモジュール146、およびプログラムデータ147は、少なくとも異なるものであることを示すために、ここでは異なる番号が与えられている。ユーザは、キーボード162、および一般にマウス、トラックボール、またはタッチパッドと呼ばれるワイヤレスポインティングデバイス161を介して、コマンドおよび情報をコンピュータ110に入力することができる。他の入力デバイス(図示せず)は、マイクロフォン、ジョイスティック、ゲーム用パッド、衛星パラボラアンテナ、スキャナなどを含み得る。こうしたおよび他の入力デバイスはしばしば、システムバスに結合されるユーザ入力インターフェイス160を介して処理ユニット120に接続されるが、パラレルポート、ゲームポート、USB(ユニバーサルシリアルバス)など、他のインターフェイスおよびバス構造によっても接続され得る。モニタ191または他のタイプの表示デバイスも、ビデオインターフェイス190などのインターフェイスを介してシステムバス121に接続される。モニタに加え、コンピュータは、出力周辺インターフェイス190を介して接続され得るスピーカ197およびプリンタ196など、他の周辺出力デバイスも含み得る。
コンピュータ110は、リモートコンピュータ180など、1つまたは複数のリモートコンピュータへの論理接続を用いて、ネットワーク接続された環境において動作し得る。リモートコンピュータ180は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス、または他の共通ネットワークノードでよく、通常、コンピュータ110に関連して上述された要素の多くまたはすべてを含むが、図1にはメモリ記憶装置181のみが示されている。図1に示される論理接続は、LAN(ローカルエリアネットワーク)171およびWAN(ワイドエリアネットワーク)173を含むが、他のネットワークも含み得る。このようなネットワーク環境は、会社、企業規模のコンピュータネットワーク、イントラネットおよびインターネットにおいてよく見られる。
LANネットワーク環境において使われる場合、コンピュータ110は、ネットワークインターフェイスまたはアダプタ170を介してLAN171に接続される。WANネットワーク環境において使われる場合、コンピュータ110は通常、モデム172、または、たとえばインターネットなどのWAN173を介して通信を確立する他の手段を含む。モデム172は、内部にあっても外部にあってもよく、ユーザ入力インターフェイス160または他の適切な機構を介してシステムバス121に接続され得る。ネットワーク接続された環境では、コンピュータ110に関連して図示されるプログラムモジュールまたはその一部は、リモートメモリ記憶装置に格納され得る。限定ではなく例として、図1は、リモートアプリケーションプログラム185を、メモリ装置181に常駐するものとして示す。図示されるネットワーク接続は例示であり、コンピュータ間の通信リンクを確立する他の手段も使われ得ることが理解されよう。周辺インターフェイス195は、スキャナ(図示せず)やデジタルカメラ194などのビデオ入力デバイスとインターフェイスをとることができ、出力周辺インターフェイスは、ユニバーサルシリアルバス(USB)インターフェイスを含む、標準化されたインターフェイスをサポートし得る。
本発明は、他の数多くの汎用または専用のコンピューティングシステム環境または構成とともに動作する。本発明とともに使用するのに適切であり得る他の公知のコンピューティングシステム、環境、および/または構成の例は、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイスまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な家電製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスのいずれをも含む分散型コンピューティング環境などを含むが、それに限定されない。
本発明は、コンピュータによって実行される、プログラムモジュールなどのコンピュータ実行可能命令という一般的な状況において説明され得る。概して、プログラムモジュールは、特定のタスクを実施しまたは特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本発明は、通信ネットワークを介して連結されるリモート処理デバイスによってタスクが実施される分散型コンピューティング環境においても実施され得る。分散型コンピューティング環境では、プログラムモジュールは、メモリ記憶デバイスを含むローカルおよびリモートコンピュータ記憶媒体両方に置かれ得る。
プログラミングインターフェイス(またはより簡単には、インターフェイス)は、コードの1つまたは複数のセグメント(群)が、コードの1つまたは複数の他のセグメント(群)によって提供される機能性と通信し、またはその機能性にアクセスすることを可能にする、どの仕組み、処理、プロトコルとしても見なされ得る。あるいは、プログラミングインターフェイスは、他のコンポーネント(群)の、1つまたは複数の仕組み(群)、メソッド(群)、関数呼出し(群)、モジュール(群)などと通信結合することができる、システムのあるコンポーネントの、1つまたは複数の仕組み(群)、メソッド(群)、関数呼出し(群)、モジュール(群)、オブジェクト(群)などとして見なされ得る。上記の文における「コードのセグメント」という用語は、適用される専門範囲に関わらず、かつコードセグメントが個別にコンパイルされるかどうか、コードセグメントがソースコード、中間コード、またはオブジェクトコードとして提供されるのか、コードセグメントがランタイムシステムまたは処理において使用されるのか、コードセグメントが同じマシンもしくは異なるマシンに置かれるか、それとも複数のマシンに分散されるか、あるいはコードのセグメントによって表される機能性が、完全にソフトウェアとして、完全にハードウェアとして、またはハードウェアおよびソフトウェアの組合せとして実装されるのかに関わらず、1つまたは複数の命令またはコードの行を含み、たとえば、コードモジュール、オブジェクト、サブルーチン、関数などを含むことを意図している。
概念的には、プログラミングインターフェイスは、図2または図3に示すように、包括的に見なされ得る。図2は、第1および第2のコードセグメントが通信するためのパイプ(conduit)としてのインターフェイス1というインターフェイスを示す。図3は、インターフェイスを、インターフェイスオブジェクトI1およびI2(第1および第2のコードセグメントの一部であってもなくてもよい)を備えるものとして示し、こうしたインターフェイスオブジェクトは、システムの第1および第2のコードセグメントが、媒体Mを介して通信することを可能にする。人によっては、図3を見て、インターフェイスオブジェクトI1およびI2を、同一のシステムの別個のインターフェイスと見なし、また、オブジェクトI1およびI2と媒体Mとがインターフェイスを構成すると見なすであろう。図2および3は、双方向の流れ、およびその流れの両端でのインターフェイスを示すが、特定の実装形態は、一方向での情報の流れしかもたない(または後で説明されるように情報の流れをもたない)場合もあり、一端でのインターフェイスオブジェクトしかもたない場合もある。限定ではなく例として、アプリケーションプログラミングインターフェイス(API)、エントリポイント、メソッド、関数、サブルーチン、リモートプロシージャコール、およびコンポーネントオブジェクトモデル(COM)インターフェイスなどの用語は、プログラミングインターフェイスの定義範囲に包含される。
このようなプログラミングインターフェイスの様相は、第1のコードセグメントが、第2のコードセグメントに情報(この場合、「情報」は、広い意味で使われており、データ、コマンド、要求などを含む)を送信するメソッドと、第2のコードセグメントが、その情報を受け取るメソッドと、その情報の構造、シーケンス、シンタクス、構成(organization)、スキーマ、計時、および内容とを含み得る。これに関して、情報が、インターフェイスによって定義されたやり方で移送される限り、基底の移送媒体自体は、有線でも無線でも、あるいは有線および無線の組合せであっても、インターフェイスの動作にとって重要ではない場合がある。特定の状況では、情報は、従来の意味での一方向または両方向で渡されることができない。というのは、情報の転送は、あるコードセグメントが、第2のコードセグメントによって実施される機能性に単にアクセスするときのように、別の仕組み(たとえば、コードセグメントの間の情報の流れとは別に、情報が、バッファ、ファイルなどに置かれる)を介するか、または存在しなくてもよいからである。こうしたアスペクトのいずれかまたは全部は、所与の状況、たとえば、コードセグメントが、疎結合構成または密結合構成どちらのシステムの一部であるかに応じて重要となる場合があり、したがって、このリストは、例示であって限定のためではないと見なされるべきである。
このプログラミングインターフェイス概念は、当業者に公知であり、本発明の上記の詳細な説明から明らかである。しかし、プログラミングインターフェイスを実装する他の方法もあり、明示的に除外されない限り、こうした方法も、本明細書に添付され定義される特許請求の範囲に包含されることを意図している。このような他の方法は、図2および3の単純化された概観より高度または複雑に見えることがあるが、それにもかかわらず、全体として同じ結果を達成する類似の機能を実施する。ここで、プログラミングインターフェイスのいくつかの例示的な代替実装形態を簡潔に説明する。
あるコードセグメントから別のコードセグメントへの通信は、その通信を、多数の別々の通信に分けることによって、間接的に達成されることができる。このことは、図4および19で概略的に示される。図示されるように、いくつかのインターフェイスは、分割可能ないくつかの組の機能性として説明され得る。したがって、図2および3のインターフェイス機能性は、24または2×2×3×2を数学的にもたらし得るように、同じ結果を達成するように因数分解され得る。したがって、図18に示されるように、インターフェイス1というインターフェイスによって提供される機能は、インターフェイスの通信をインターフェイス1A、インターフェイス1B、インターフェイス1Cなどの複数のインターフェイスに変換するように下位分割され、同じ結果を達成し得る。図5に示されるように、インターフェイスI1によって提供される機能は、複数のインターフェイスI1a、I1b、I1cなどに下位分割され、同じ結果を達成し得る。同様に、第1のコードセグメントから情報を受け取る、第2のコードセグメントのインターフェイスI2は、複数のインターフェイスI2a、I2b、I2cなどに因数分解され得る。因数分解する際、第1のコードセグメントに含まれるインターフェイスの数は、第2のコードセグメントに含まれるインターフェイスの数と一致しなくてもよい。図4および5のいずれの場合でも、インターフェイス1およびI1というインターフェイスの機能上の意図は、それぞれ図2および3の場合と同じままである。インターフェイスの因数分解は、因数分解が認識困難になり得るように、結合的な、可換な、および他の数学的なプロパティの後に起こってもよい。たとえば、動作の順序は重要でなくてよく、したがって、インターフェイスによって実現される機能は、インターフェイスの遂行に先立って、別のコード部分またはインターフェイスによって実現されても、システムの別のコンポーネントによって実施されてもよい。さらに、プログラミング分野の当業者であれば、同じ結果を達成する異なる関数呼出しを行う様々な方法があることを理解できよう。
いくつかの場合では、プログラミングインターフェイスの特定のアスペクト(たとえばパラメータ)を無視し、追加し、または再定義しながら、意図した結果を依然として達成することが可能であり得る。このことは、図6および7に示される。たとえば、図2のインターフェイス1というインターフェイスが、Square(input,precision,output)の関数呼出しを含み、この呼出しは、3つのパラメータ、すなわちinput、precision、およびoutputを含み、第1のコードセグメントから第2のコードセグメントに発行されると仮定する。中央のパラメータprecisionは、図6に示すように、所与のシナリオに関係しない場合、適切に無視されても、(この状況において)meaninglessパラメータで置き換えられてもよい。無関係なadditionalパラメータを追加することもできる。いずれの場合でも、第2のコードセグメントによって入力が二乗された後で出力が返される限り、二乗の機能性は達成され得る。precisionは、コンピューティングシステムの何らかの下流部分または他の部分にとって有意なパラメータでもよい。ただし、precisionは、二乗計算という狭い目的にとって必要ないと認識されると、置き換えられても無視されてもよい。たとえば、有効なprecision値を渡すのではなく、誕生日などの無意味な値が、結果に悪影響を与えることなく渡されてもよい。同様に、図7に示すように、インターフェイスI1は、インターフェイスI1’で置き換えられ、インターフェイスへのパラメータを無視しまたは追加するように再定義される。インターフェイスI2は、同様にインターフェイスI2’として再定義されることができ、不必要なパラメータまたは他の所で処理されることができるパラメータを無視するように再定義される。ここでのポイントは、いくつかの場合において、プログラミングインターフェイスは、何らかの目的には必要とされないパラメータなどのアスペクトを含む場合があるので、こうしたアスペクトは、無視されまたは再定義され、あるいは他の目的のために他の所で処理され得ることである。
2つの別々のコードモジュールの機能性の間の「インターフェイス」が形を変えるように、そうした機能性の一部または全部をマージすることも可能であり得る。たとえば、図2および3の機能性は、それぞれ図8および9の機能性にコンバートされ得る。図8において、図2の以前の第1および第2のコードセグメントは、その両方を含むモジュールにマージされる。この場合、コードセグメントは、依然として相互に通信していてもよいが、インターフェイスは、単一モジュールにより適した形に適合され得る。したがって、たとえば、正式な呼出しおよび戻りステートメントは不必要になり得るが、インターフェイス1というインターフェイスに準じた同様の処理または応答(群)は依然として有効であり得る。同様に、図9に示されるように、図3のインターフェイスI2の一部(または全部)は、インターフェイスI1にインラインに書き込まれて、インターフェイスI1’’を形成し得る。図示されるように、インターフェイスI2は、I2aおよびI2bに分割され、インターフェイス部分I2aは、インターフェイスI1とインラインにコーディングされて、インターフェイスI1’’を形成している。具体的な例として、図3のインターフェイスI1が、関数呼出しsquare(input,output)を実施し、この呼出しが、インターフェイスI2によって受け取られ、インターフェイスI2は、第2のコードセグメントによる、inputとともに渡された値の(inputを二乗するための)処理の後、二乗された結果をoutputとともに返す場合を考える。このような場合、第2のコードセグメントによって実施される(inputを二乗する)処理は、インターフェイスへの呼出しなしで、第1のコードセグメントによって実施され得る。
一方のコードセグメントから別のコードセグメントへの通信は、その通信を複数の別々の通信に分けることによって間接的に遂行することができる。このことは、図10および11に概略的に示されている。図10に示すように、第1のインターフェイス、すなわちインターフェイス1上での通信を、異なるインターフェイス、この場合インターフェイス2A、インターフェイス2B、およびインターフェイス2Cというインターフェイスに通信を準拠させるようにコンバートするためのミドルウェアの1つまたは複数の断片(群)(元のインターフェイスから機能性および/またはインターフェイス機能を分離するので、分離インターフェイス(群))が提供される。これは、たとえば、インターフェイス1のプロトコルに従ってオペレーティングシステムと通信するように設計されたアプリケーションのベースがインストールされているが、次いで、オペレーティングシステムが、異なるインターフェイス、この場合インターフェイス2A、インターフェイス2B、およびインターフェイス2Cというインターフェイスを用いるように変更される場合に行われ得るであろう。重要なのは、第2のコードセグメントによって使われていた元のインターフェイスは、第1のコードセグメントによって使われるインターフェイスとの互換性がなくなるように変更され、したがって、古いおよび新しいインターフェイスを互換可能にするのに媒介が用いられる点である。同様に、図11に示すように、DI2と共同で作用するように設計し直されているが同じ機能的結果をもたらす、インターフェイスI1からの通信を受けるための分離インターフェイスDI1、およびたとえばインターフェイスI2aおよび12bにインターフェイス機能性を送るための分離インターフェイスDI2を有する、第3のコードセグメントが導入され得る。同様に、DI1およびDI2は、図3のインターフェイスI1およびI2の機能性を、新しいオペレーティングシステムに変換するように共同作用し、同じまたは類似した機能的結果をもたらし得る。
インターフェイスの機能性を他のもので置き換えるが全体的に同じ結果を達成するようにコードを動的に書き換えることになるさらに別の変形体が可能である。たとえば、(.Netフレームワーク、Java(登録商標)ランタイム環境、または他の同様のランタイムタイプの環境によって提供されるような)実行環境において、中間言語(たとえば、マイクロソフトIL、Java(登録商標)バイトコードなど)の形で示されるコードセグメントが、ジャストインタイム(JIT)コンパイラまたはインタープリタに与えられるシステムがあり得る。JITコンパイラは、第1のコードセグメントから第2のコードセグメントへの通信を動的にコンバートするように、すなわち、第2のコードセグメント(元のまたは異なる第2のコードセグメントのどちらか)によって要求され得る異なるインターフェイスに通信を準拠させるように書かれることができる。このことは、図12および13に示されている。図12に見られ得るように、この手法は、上述された分離シナリオと似ている。これは、たとえば、インターフェイス1のプロトコルに従ってオペレーティングシステムと通信するように設計されたインストール済みのアプリケーションのベースが、次いで、オペレーティングシステムが、異なるインターフェイスを用いるように変更される場合に行われ得るであろう。JITコンパイラは、インストールベースのアプリケーションからの実行中(on the fly)の通信を、オペレーティングシステムの新しいインターフェイスに準拠させるのに用いられ得る。図13に示されるように、インターフェイス(群)を動的に書き換えるこの手法は、インターフェイス(群)を動的に因数分解し、あるいは作り変えるのにも適用され得る。
代替実施形態によって、インターフェイスと同じまたは類似の結果を達成する上述したシナリオは、様々な方法、すなわち直列および/または並列で、あるいは他の介在コードと組み合わされてもよいことにも留意されたい。したがって、上で提示された代替実施形態は、互いに排他的でなく、図2および3に示される汎用的なシナリオと同じまたは等価なシナリオを作り出すように、混合され、調和され、組み合わされ得る。ほとんどのプログラミング構成の場合のように、本明細書では説明されないが、それにもかかわらず本発明の精神および範囲によって表されるインターフェイスの同じまたは類似の機能性を達成する他の同様の方法があることにも留意されたい。すなわち、インターフェイスの価値を決定するのは、少なくとも一部は、インターフェイスによって表される機能性、およびインターフェイスによって可能にされる有利な結果であることに留意されたい。
ユーザインターフェイスは、アプリケーションの稼動およびオペレーティングシステムの管理に必要なオブジェクトへのアクセスを、ユーザに許可する。こうしたオブジェクトは、コンピュータのディスクドライブ上に常駐し得るフォルダおよびファイルを含み得る。シェルは、こうしたオブジェクトを、ユーザインターフェイスを介して、またはアプリケーションを介して階層状の名前空間構造に系統化する。シェルは、システムにロケーションおよび存在が知られ得るとともにそれに対するアクセスがスタートメニューなどシェル中の数多くの場所から与えられる特殊なフォルダを含み得る。
本発明の態様において、GUID(グローバルに一意の識別子)は、システム上の個別の既知の各フォルダを指定するのに使用され得る。既知のフォルダは、仮想フォルダ、固定ファイルシステムフォルダ、共通フォルダ、およびユーザごとのフォルダを含む4つのカテゴリの1つに属し得る。
仮想フォルダは、シェル名前空間中に現れる仮想シェルフォルダでよく、関連づけられた実際のどのファイルシステムフォルダももたなくてよい。たとえば、制御パネルフォルダおよびプリンタフォルダは、実際のどのファイルシステムフォルダにもバックアップされないが、シェル仮想名前空間中にのみ存在する仮想フォルダであり得る。固定ファイルフォルダは、シェルによって管理されず、システムがインストールされる際にそのロケーションが固定されるファイルシステムフォルダであり得る。たとえば、「Windows(登録商標)」フォルダおよび「Program Files」フォルダは、固定フォルダである。共通フォルダは、ユーザ間のデータおよび設定の共有に使われ得るファイルシステムフォルダでよい。たとえば、あるマシンの全ユーザが、共通デスクトップフォルダを共有することができる。最終的に、ユーザごとのフォルダは、個人のプロファイルの下に置かれ、個人ユーザによって所有されるファイルシステムフォルダであり得る。たとえば、「%USERPROFILE%\Pictures」は、現在のユーザのピクチャ用のフォルダである。
本発明の態様において、Win32およびCom API両方に対して、knownfolder機能性が提供され得る。Win32 APIは、SHFolderPath APIとの下位互換性を提供し得る。SHFolderPath APIは、そうしたそれぞれのフォルダ向けの新規FOLDERIDに対する、CSIDLのハードコードされたマッピングリストを有するCom APIのラッパーであり得る。
下位互換性をサポートするために、knownfolderインターフェイスは、SHGetFolderLocationEx()、SHGetFolderPathEx()、およびSHSetFolderPathEx()を含む3つのWin32 APIコールをサポートすることができる。
SHGetFolderLocationEx()APIは、SHGetFolderlocation()APIを包含し、指定されたKnownFolderIDに対するknownfolder PIDLの取得などの付加能力、および/または要求されたknownfolderがまだ存在しない場合は、その作成を指定する能力を呼出し側に与えることができる。SHGetFolderLocationEx()API1400は、図14に示される。SHGetFolderLocationEX()API1400パラメータは、rfidパラメータ1401を含み得る。rfidパラメータ1401は、既知のフォルダ向けのGUID識別を表し得る。dwFlagsパラメータ1402は、フォルダが参照されたときに実施されるべき特殊なオプションを指定することができる。dwFlagパラメータ1402のデフォルト値はゼロでよい。dwFlagパラメータ1402の他の例示的な値は、下の表1に示される。
hTokenパラメータ1403は、ユーザごとの既知のフォルダの所有者を指定することができる。既知のフォルダのいくつか、たとえば、「マイドキュメント」フォルダが、ユーザごとのフォルダである。すべてのユーザは、自分の「マイドキュメント」フォルダに対する異なるパスを有し得る。hTokenパラメータ1403がヌルの値をもつ場合、APIは、フォルダの現在のユーザ(呼出し側)のインスタンスへのアクセスを試みることができる。hTokenパラメータ1403が有効なユーザトークンをもつ場合、APIは、このトークンを使って、ユーザの役割を演ずることを試み、そのユーザのインスタンスへのアクセスを試みる。さらに、hTokenパラメータ1403が−1の値をもつ場合、APIは、デフォルトのユーザのフォルダへのアクセスを試みることができる。ppidlパラメータ1404は、要求された既知のフォルダのPIDLを返し得る。
SHGetFolderPathEx()APIは、SHGetFolderPath()APIを包含し、既知のフォルダの実際のファイルシステムパスを呼出し側に与え得る。SHGetFolderPathEx()API1500は、図15に示されている。SHGetFolderPathEx()API1500パラメータは、rfidパラメータ1401、dwFlagsパラメータ1402、およびhTokenパラメータ1403など、SHGetFolderLocationEx()API1400で上述されたのと同様のパラメータを含み得る。さらに、SHGetFolderPathEx()API1500は、pszPathパラメータ1508およびcchPathパラメータ1509も含み得る。pszPathパラメータ1508は、既知のフォルダのパスを返すことができ、cchPathパラメータ1509は、pszPathパラメータ1508のバッファサイズを指定することができる。さらに、SHGetFolderPathEx()API1500は、下の表2に示されるように、使用可能な追加のdwFlag値を有し得る。
SHSetFolderPathEx()API1600は、SHSetFolderPath()APIを包含し、所与の既知のフォルダに対するパスを呼出し側に設定させることができる。SHSetFolderPathEx()API1600は、図16に示される。SHSetFolderPathEx()API1600パラメータは、rfidパラメータ1401、dwFlagsパラメータ1402、およびhTokenパラメータ1403など、SHGetFolderLoeationEx()API1400で上述されたのと同様のパラメータを含み得る。さらに、SHSetFolderPathEx()API1600は、knownfolderに対する、リダイレクトされたパスを指定するのに使われ得るpszPathパラメータ1608も含み得る。さらに、ShSetFolderPathEx()API1600は、下の表3に示されるように、使用可能な追加のdwFlag値を有し得る。
上で述べたように、本発明の別の態様では、knownfolder機能性は、Com APIによって提供され得る。COMインターフェイスは、IKnownFolder API、IKnownFolderManager API、IEnumKnownFolderインターフェイス、およびIKnownFolderHandlerを含み得る。
図17に示されるように、IKnownFolder API1700は、定義済みのknownfolder用のGUID値および/またはPIDL値を得る能力を、アプリケーションに与えることができる。さらに、IKnownFolder API1700は、定義済みのknownfolderに対するパスを得ることも、設定することもできる。IKnownFolder APIパラメータは、GetID()パラメータ1701を含み得る。GetID()パラメータ1701は、指定されたknownfolder用のGUIDを取得することができる。GetCategory()パラメータ1702は、指定されたknownfolder用のknownfolderカテゴリを取得することができる。knownfolderカテゴリは、仮想フォルダカテゴリ、固定ファイルシステムカテゴリ、共通フォルダカテゴリ、および/またはユーザごとのフォルダカテゴリを含み得る。
IKnownFolder API1700の追加パラメータは、GetPath()パラメータ1703、SetPath()パラメータ1704、GetLocation()パラメータ1705、およびGetItem()パラメータ1706を含み得る。GetPath()パラメータ1703は、所与のknownfolderに対するパスを取得することができる。SethPath()パラメータ1704は、knownfolderに対するパスを設定することができる。GetLocation()パラメータ1705は、knownfolderに関連づけられたPIDLを与えることができ、GetItem()パラメータ1706は、指定されたフォルダに関連づけられたシェルインターフェイスを取得することができる。
さらに、IKnownFolder API1700によってリダイレクションが提供され得る。リダイレクションは、IsRedirectable()パラメータ1707、IsValidFolderPath()パラメータ1708、Redirect()パラメータ1709、およびRedirectWithUI()パラメータ1710の使用により、指定され得る。IsRedirectable()パラメータ1707は、指定された既知のフォルダがリダイレクトされることを許可されるかどうか確かめるために提供され得る。IsValidFolderPath()パラメータ1708は、与えられたパスがリダイレクション用に有効なパスであるかどうか検証することができる。Redirect()パラメータ1709は、指定されたknownfolderを指定されたパスへリダイレクトすることができる。RedirectWithUI()パラメータ1710は、knownfolderを指定されたパスへリダイレクトする間、ユーザインターフェイスを表示することができる。
本発明の別の態様では、IKnownFolderManager APIが提供され得る。図18に示されるように、IKnownFolderManager API1800は、knownfolderを作成し、または削除する能力を与えることができる。IKnownFolderManager API1800は、knownfolderの記述、knownfolderのカテゴリ、knownfolderの所有権情報、および/またはknownfolderの相対パスなど、knownfolderの定義を管理することもできる。さらに、IKnownFolderManager API1800は、コンピューティングシステムにおいて、またはコンピューティングシステム環境において利用可能な全knownfolderを列挙する能力も与え得る。たとえば、IKnownFolderManager API1800は、コンピュータネットワークへのアクセスを有するユーザに利用可能な、周知のフォルダをすべて列挙することができる。
本発明の態様によると、IKnownFolderManager API1800は、いくつかのパラメータを含み得る。たとえば、IKnownFolderManager API1800は、FolderIdFromCSIDL()パラメータ1801を含み得る。FolderIdFromCSIDL()パラメータ1801は、指定されたCSIDLに関連づけられたKnownFolder_IDを取得するのに使われ得る。FolderIdFromCSIDL()パラメータ1801はしたがって、CSIDLとKnownFolder_IDとの間の変換を提供し得る。同様に、FolderIdToCSIDL()パラメータ1802も、指定されたKnownFolder_ID用のCSIDL値を取得するように定義され得る。
IKnownFolderManager API1800のパラメータとして、GetFolder()パラメータ1803も定義され得る。GetFolder()パラメータ1803は、knownfolderのIDが入手可能な場所で、特定のknownfolder向けの情報を直接取得するのに使用され得る。GetFolder()パラメータ1803は、knownfolder用のGUID値、knownfolderカテゴリ、knownfolderパス、および/またはknownfolderに関連づけられたPIDLなどの情報を取得するために、IKnownFolderポインタを返し得る。GetFolder()パラメータ1803と同様、ある特定のユーザに属すknownfolderに対するパスを得る能力を呼出し側に与えるGetFolderForUser()パラメータ1804も定義され得る。
図18を参照すると、指定されたKnownFolder_IDに関連づけられた全プロパティを取得するために、GetFolderDefinition()パラメータ1805が提供され得る。本発明の態様によると、KnownFolder_Definition構造体1900が、図19に示されるように定義され得る。KnownFolder_Definition構造体1900は、図19に示され、さらに表4に記載されるように、いくつかの定義済みフィールドを含み得る。こうしたフィールドは、category1910、pszName1911、pszCreator1912、pszDescription1913、pfidParent1914、pszRelativePath1915、pszParsingName1916、pszTooltip1917、pszLocalizedName1918、pszIcon1919、pszSecurity1920、dwAttributes1921、pszLegacyPath1922、clsidHandler1923、およびkfdFlags1924を含み得る。
図18を参照すると、RegisterFolder()パラメータ1806およびUnregisterFolder()パラメータ1807などのパラメータが、システム用のknownfolderを作成し、または削除するために与えられ得る。RegisterFolder()パラメータ1806は、ユーザまたは呼出し側に、有効なKnownFolder_Definitionを指定するよう求め得る。UnregisterFolder()パラメータ1808は、要求があったときにKnownFolder_Definition定義を削除することができる。
GetEnumKnownFolders()パラメータ1809およびGetEnumKnownFoldersForUser()パラメータ1810などの追加パラメータも、IKnownFolderManager API1800と使用するために定義され得る。GetEnumKnownFolders()パラメータ1809は、システム上の全knownfolderを列挙するためのポインタを返すことができ、GetEnumKnownFoldersForUser()パラメータ1810は、ある特定のユーザ用のknownfolderを列挙するための能力を呼出し側に与えることができる。最終的に、FindFolderFromPath()パラメータ1811は、与えられたファイルシステムパスに対する関連づけられた既知のフォルダIDを取得するための既知のフォルダポインタを返すことができる。
本発明の別の態様では、IEnumKnownFolder()APIが提供され得る。図20に示されるように、IEnumKnownFolder()API2000は、knownfolderを列挙するための能力を提供し得る。GetEnumKnownFolders()パラメータ1809およびGetEnumKnownFoldersForUser()パラメータ1810は、システム上の全knownfolderの列挙を得るためのIEnumKnownFolder()API2000へのポインタを返すことができる。IEnumKnownFolder()API2000は、Next()2001、Skip()2002、Reset()2003、およびClone()2004などのパラメータを含み得る。Next()パラメータ2001は、列挙シーケンス中の指定された数の項目識別子を取得し、取り出された項目の数だけ、現在の位置を進めることができる。Skip()パラメータ2002は、列挙シーケンス中の指定された数の要素をスキップすることができる。Reset()パラメータ2003は、列挙シーケンスの先頭にインターフェイスを戻すことができる。Clone()パラメータ2004は、現在のものと同じ内容および状態をもつ新規列挙オブジェクトを作成することができる。
本発明の別の態様では、IKnownFolderHandler()APIが提供され得る。図21に示されるように、IKnownFolderHandler()API2100は、knownfolderの作成および/または削除のための特殊コードを追加する能力を、他のコンポーネントに提供することができる。IKnownFolderHandler()API2100は、GetDefaultLocation()2101、FolderCreated()2102、およびFolderRemoved()2103などのパラメータを含み得る。GetDefaultLocation()パラメータ2101は、knownfolder用のデフォルトのロケーションを取得することができる。FolderCreated()パラメータ2102は、指定されたknownfolderが作成されると、ハンドラを開始することができる。さらに、FolderRemoved()パラメータ2103は、指定されたknownfolderが削除されると、ハンドラを開始することができる。このパラメータは、アプリケーションによって作成された既知のフォルダが作成され、または削除されると、カスタムコードを稼動させる能力を、アプリケーションに提供することができる。
図22は、本発明の態様による、オペレーティングシステム2202へのプログラムインターフェイスコールを使用する要求コンポーネント2201を示す図である。本発明の本態様において、要求コンポーネント2201はアプリケーションであるが、他の実施形態では、要求コンポーネント2201は、図1に示されるように、コンピュータ110の周辺のハードウェア内部に統合されてよい。
要求コンポーネント2201は、開発者またはユーザによってインストールされると、コンピュータ110上の既存のknownfolderを作成し、列挙し、または管理することを決定し得る。たとえば、図22のアプリケーション2201は、アプリケーションがインストールされると、レジストリ2203に対して直接、新規knownfolderを追加することによって、ユーザプロファイルの中に新規フォルダを作成することができる。さらに、新規knownfolderは、IKnownFolderManager APIなど、KnownFolder API2210を介して追加されてもよい。開発者またはユーザは、アプリケーション2201を介して、新規knownfolderを作成するためのIKnownFolderマネージャAPI1800などのAPIをコールする(2250)ことができる。開発者またはユーザは、アプリケーションを介して、新規knownfolderにとって一意の識別子となるGUID2251を与えることができる。開発者またはユーザは、標準プロパティ以外に、新規knownfolderに関連づけられることになる追加プロパティ2252を定義することもできる。図22を参照すると、アプリケーション2201は、KnownFolder API2210へのコールなどのコール2250を送信する。入力2250に応答して、IKnownFolderManager API1800は、オペレーティングシステム2202に、オペレーティングシステム2202のレジストリ2203を有する新規knownfolderを登録する。オペレーティングシステムは、それに応答して、新規knownfolderのパス2260をアプリケーション2201に送り得る。
図22aは、本発明の別の態様を示す。図22aを参照すると、プログラムインターフェイスコールを使用するアプリケーション2201が、既知のフォルダAPI2210を介して、既知のフォルダのロケーション用の識別2260とともに要求を送り得る。既知のフォルダAPI2210は、既知のフォルダIDの一覧2280と、それに対応する記憶位置を求めて、レジストリ2203を検索することができる。既知のフォルダAPI2210は、既知のフォルダが置かれ得るローカル記憶装置2255などの特定の記憶デバイスへの要求2261を介して、レジストリ内で指定された記憶位置が有効であることを検証し得る。ロケーションを検証すると、Knownfolder APIは、要求された既知のフォルダのパスを、アプリケーションに返し得る。たとえば、マイピクチャ2270という既知のフォルダが、コール2260を介してアプリケーション2201によって要求され得る。既知のフォルダAPI2210は、ピクチャ2270という既知のフォルダのロケーションを、レジストリ一覧2280の調査により決定することができる。既知のフォルダAPI2210は、ロケーションが実際に存在することを、ローカル記憶装置2255への要求2261により検証することができ、確認すると、ローカル記憶装置2255上のピクチャのロケーション2262へのパスを、アプリケーション2201に返すことができる。
既知のフォルダ「マイピクチャ」2270は、ローカル記憶装置2255からネットワーク記憶装置2256に移動(2290)され得る。既知のフォルダ「マイピクチャ」2270を再配置すると、既知のフォルダ「マイピクチャ」2270用のロケーションパスを変えることになる。既知のフォルダ「マイピクチャ」2270のロケーションは、レジストリ2203内でアップデートされ得る。同様に、ウェブサイトロケーション2257など別のロケーションへの、既知のフォルダ「マイピクチャ」2270の移動2295により、既知のフォルダ「マイピクチャ」2270の新しい位置で、レジストリ2203のアップデートが開始され得る。
図23は、本発明の態様による、新規knownfolderを作成する方法を示す図である。図23を参照すると、オペレーティングシステムなどのコンポーネントが、ステップ2301で、GUIDを有するコールを、第1のコンポーネントから受け取り得る。第1のコンポーネントは、開発者またはユーザによってインストールされ、または初期化されるアプリケーションプログラムを含み得る。オペレーティングシステムによってコールを受け取ると、オペレーティングシステムは、ステップ2302で、アプリケーションプログラムによって与えられたGUIDを抽出することができる。コールは、新規knownfolderの作成において使用するためのプロパティなどの付加情報も含み得る。プロパティは、category、pszName、pszCreator、pszDescription、pfidParent、pszRelativePath、pszParsingName、pszTooltip、pszLocalizedName、pszIcon、pszSecurity、dwAttributes、pszLegacyPath、clsidHandler、およびkdfFlagsなど、新規knownfolderを定義するための情報を含み得る。
抽出されたGUIDおよび与えられた付加情報に基づいて、新規knownfolderがステップ2303で作成され得る。新規knownfolderは、ステップ2304で示されるように、オペレーティングシステムのレジストリ内に含められ得る。オペレーションシステムは、ステップ2405で、新規knownfolderのパスをアプリケーションプログラムに送ることができる。アプリケーションプログラムは、ローカルまたはネットワークシステム上の既存のknownfolderをすべて列挙することができる。
本発明を実施する、現時点で好まれるモードを含む具体例を参照して本発明が説明されたが、添付の特許請求の範囲で説明されるように、本発明の精神および範囲内である、上述したシステムおよび技法の多数の変形および置換えが存在することが、当業者には理解されよう。
本発明が実施され得る、適切なコンピューティングシステム環境の例を示す図である。 第1および第2のコードセグメントが通信するためのパイプとしてのインターフェイスを示す図である。 インターフェイスを、インターフェイスオブジェクトを備えるものとして示す図である。 インターフェイスの通信を多数のインターフェイスにコンバートするために細分され得るインターフェイスによって提供される機能を示す図である。 多数のインターフェイスに細分され得るインターフェイスによって提供される機能を示す図である。 プログラミングインターフェイスのアスペクトを無視し、追加し、または再定義しながら、依然として同じ結果を達成する例を示す図である。 プログラミングインターフェイスのアスペクトを無視し、追加し、または再定義しながら、依然として同じ結果を達成する別の例を示す図である。 図2に示される例に関連したコードセグメントのマージを示す図である。 図3に示される例に関連したインターフェイスのマージを示す図である。 通信を、異なるインターフェイスに準拠するようにコンバートするミドルウェアを示す図である。 分離インターフェイスに関連づけられたコードセグメントを示す図である。 アプリケーションのインストールされたベースが、インターフェイスプロトコルに従って、異なるインターフェイスを用いるように変更されるオペレーティングシステムと通信するように設計される例を示す図である。 インターフェイスを動的に因数分解し、あるいは改めるための書換えインターフェイスを示す図である。 本発明の態様による、指定されたKnownFolderIDに対するKnownfolder PIDLの取得などの機能性を提供することができる拡張APIを示す図である。 本発明の態様による、呼出し側への、Knownfolderの実際のファイルシステムパスの提供などの機能性を提供することができる付加拡張APIを示す図である。 本発明の態様による、所与の既知のフォルダに対するパスを呼出し側に設定させる機能性を提供することができる第3の拡張APIを示す図である。 本発明の態様による、アプリケーションへの、定義済みknownfolderに対するGUID値および/またはPIDL値を得る能力の付与などの機能性を提供することができるIKnownFolder APIを示す図である。 本発明の態様による、knownfolderを作成し、または削除する能力を与えることができるIKnownFolderManager APIを示す図である。 本発明の態様によるKnownFolder_Definition構造体を示す図である。 本発明の態様による、knownfolderを列挙する能力を与えることができるIEnumKnownFolder()APIを示す図である。 本発明の態様による、他のコンポーネントが、knownfolderの作成および/または削除用の特殊コードを追加するための能力を与えることができるIKnownFolderHandler()APIを示す図である。 本発明の態様による、オペレーティングシステムへのプログラムインターフェイスコールを使用する要求コンポーネントを示す図である。 本発明の態様による、アプリケーションが、既知のフォルダのロケーションを決定するために、既知のフォルダの識別とともに要求を送信する、本発明の別の態様を示す図である。 本発明の態様による、新規knownfolderを作成する方法を示す図である。

Claims (20)

  1. 第1のコンポーネントと第2のコンポーネントとの間の通信の方法であって、
    (a)第1のコンポーネントからの、既知のフォルダの識別を含むコールを受け取るステップと、
    (b)前記既知のフォルダのロケーションを求めて、レジストリを検索するステップと、
    (c)決定されたロケーションにある前記既知のフォルダからデータをアクセスするステップとを含む方法。
  2. 前記決定されたロケーションがローカルハードドライブを含む、請求項1に記載の方法。
  3. 前記決定されたロケーションがネットワークドライブを含む、請求項1に記載の方法。
  4. 前記決定されたロケーションがウェブサイトを含む、請求項1に記載の方法。
  5. 前記受け取った既知のフォルダ識別が有効でない場合に新規の既知のフォルダを作成するステップと、前記第2のコンポーネントに前記新規の既知のフォルダのロケーションを提供するステップとをさらに含む、請求項1に記載の方法。
  6. 第1のコンポーネントと第2のコンポーネントとの間の通信の方法であって、
    (a)前記第1のコンポーネントから、GUIDを有するコールを受け取るステップと、
    (b)前記GUIDを抽出するステップと、
    (c)前記抽出されたGUIDに基づいて、新規knownfolderを作成するステップと、
    (c)レジストリ内部に前記新規knownfolderを登録するステップと、
    (e)前記新規knownfolderのパスを前記第2のコンポーネントに送るステップとを含む方法。
  7. 前記第1のコンポーネントがアプリケーションプログラムを含む、請求項6に記載の方法。
  8. 前記コールが、前記新規knownfolderの前記作成において使用するためのプロパティをさらに含む、請求項6に記載の方法。
  9. 前記新規knownfolderの前記プロパティが、category、pszName、pszCreator、pszDescription、pfidParent、pszRelativePath、pszParsingName、pszTooltip、pszLocalizedName、pszIcon、pszSecurity、dwAttributes、pszLegacyPath、clsidHandler、およびkfdFlagsからなる群から選択される、請求項8に記載の方法。
  10. (f)指定されたknownfolderのロケーションを設定するコールを受け取るステップをさらに含む、請求項6に記載の方法。
  11. (f)指定されたknownfolderのカテゴリタイプを問い合わせるコールを受け取るステップをさらに含む、請求項6に記載の方法。
  12. (f)全knownfolderの列挙を求める要求を受け取るステップをさらに含む、請求項6に記載の方法。
  13. 前記第2のコンポーネントが、1組のアプリケーションプログラミングインターフェイス(API)を格納するオペレーティングシステムを含む、請求項6に記載の方法。
  14. 前記1組のアプリケーションプログラミングインターフェイスが、IKnownFolder、IKnownFolderManager、IEnumKnownFolderインターフェイス、およびIKnownFolderHandlerからなる群から選択される、請求項13に記載の方法。
  15. 前記1組のアプリケーションプログラミングインターフェイスが、SHGetFolderLocationEx()、SHGetFolderPathEx()、およびSHSetFolderPathEx()からなる群から選択される、請求項13に記載の方法。
  16. 1つまたは複数のコンピュータ可読媒体上で実施されるアプリケーションプログラミングインターフェイスであって、
    (a)knownfolderに関連する1組のアプリケーションプログラミングインターフェイスであって、レガシーコンポーネントをサポートするコールを提供する1組のアプリケーションプログラミングインターフェイスと、
    (b)knownfolderに関連する第2の1組のアプリケーションプログラミングインターフェイスであって、新規knownfolderの作成を提供する第2の1組のアプリケーションプログラミングインターフェイスとを備えるアプリケーションプログラミングインターフェイス。
  17. 前記第2の1組のアプリケーションプログラミングインターフェイスが、前記新規knownfolder用のプロパティを提供する、1つまたは複数のコンピュータ可読媒体で実施される、請求項16に記載のアプリケーションプログラミングインターフェイス。
  18. 前記新規knownfolderの前記プロパティが、category、pszName、pszCreator、pszDescription、pfidParent、pszRelativePath、pszParsingName、pszTooltip、pszLocalizedName、pszIcon、pszSecurity、dwAttributes、pszLegacyPath、clsidHandler、およびkfdFlagsからなる群から選択される、1つまたは複数のコンピュータ可読媒体で実施される、請求項17に記載のアプリケーションプログラミングインターフェイス。
  19. knownfolderに関連する前記第2の1組のアプリケーションプログラミングインターフェイスが、指定されたknownfolderのリダイレクションを提供する、1つまたは複数のコンピュータ可読媒体で実施される、請求項16に記載のアプリケーションプログラミングインターフェイス。
  20. 前記リダイレクションがコンピュータネットワークに渡って起こる、1つまたは複数のコンピュータ可読媒体で実施される、請求項16に記載のアプリケーションプログラミングインターフェイス。
JP2008504005A 2005-04-01 2005-07-28 開発者がシステム上の周知のロケーションを容易に発見し、または拡張するための能力 Active JP4972082B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/096,871 2005-04-01
US11/096,871 US7478085B2 (en) 2005-04-01 2005-04-01 Ability for developers to easily find or extend well known locations on a system
PCT/US2005/026858 WO2006107318A2 (en) 2005-04-01 2005-07-28 Ability for developers to easily find or extend well known locations on a system

Publications (2)

Publication Number Publication Date
JP2008535081A true JP2008535081A (ja) 2008-08-28
JP4972082B2 JP4972082B2 (ja) 2012-07-11

Family

ID=37073881

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008504005A Active JP4972082B2 (ja) 2005-04-01 2005-07-28 開発者がシステム上の周知のロケーションを容易に発見し、または拡張するための能力

Country Status (6)

Country Link
US (1) US7478085B2 (ja)
EP (1) EP1864230A4 (ja)
JP (1) JP4972082B2 (ja)
KR (1) KR101150065B1 (ja)
CN (1) CN101151608B (ja)
WO (1) WO2006107318A2 (ja)

Families Citing this family (104)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8019679B2 (en) * 2007-10-18 2011-09-13 Moneygram International, Inc. Global compliance processing system for a money transfer system
US10691583B2 (en) * 2010-05-26 2020-06-23 Userzoom Technologies, Inc. System and method for unmoderated remote user testing and card sorting
US11348148B2 (en) * 2010-05-26 2022-05-31 Userzoom Technologies, Inc. Systems and methods for an intelligent sourcing engine for study participants
US11562013B2 (en) 2010-05-26 2023-01-24 Userzoom Technologies, Inc. Systems and methods for improvements to user experience testing
WO2012054712A1 (en) * 2010-10-21 2012-04-26 Hewlett-Packard Development Company, L.P. Searching multiple data sources using a mobile computing device
US20130132164A1 (en) * 2011-11-22 2013-05-23 David Michael Morris Assessment Exercise Second Review Process
US9754276B2 (en) * 2011-12-21 2017-09-05 Paypal Inc. Digital content provided to a user at a physical location
US10402795B2 (en) 2012-01-05 2019-09-03 Moneygram International, Inc. Prefunding for money transfer send transactions
US10755245B2 (en) 2013-02-25 2020-08-25 Moneygram International, Inc. Money transfer system having location based language and dynamic receipt capabilities
US9727832B2 (en) * 2013-03-15 2017-08-08 Profit Strategies, Inc. Methods for generating a work-order in real time and devices thereof
KR101512296B1 (ko) 2013-04-05 2015-04-15 주식회사 팬택 어플리케이션 연관 파일 처리 단말 및 단말의 어플리케이션 연관 파일 처리 방법
US10504048B2 (en) * 2013-06-27 2019-12-10 Folloze, Inc. Systems and methods for enterprise content curation
GB201313712D0 (en) * 2013-07-31 2013-09-11 Ibm Optimizing emergency resources in case of disaster
US10192204B2 (en) 2013-08-01 2019-01-29 Moneygram International, Inc. System and method for staging money transfers between users having profiles
US20150081393A1 (en) * 2013-09-18 2015-03-19 Massachusetts Institute Of Technology Product promotion optimization system
US11216871B2 (en) 2013-09-27 2022-01-04 Insperity Services, L.P. Method, apparatus and system for automated funding
US20150095111A1 (en) * 2013-09-27 2015-04-02 Sears Brands L.L.C. Method and system for using social media for predictive analytics in available-to-promise systems
US20150095114A1 (en) * 2013-09-30 2015-04-02 Elwha Llc Employment related information center associated with communication and control system and method for wireless electric vehicle electrical energy transfer
US10719812B2 (en) * 2013-11-04 2020-07-21 Koninklijke Philips N.V. Method of notifying a user on a task of an apparatus
US10322881B1 (en) 2013-12-17 2019-06-18 Amazon Technologies, Inc. Notifying users to provide picked items to a drop off location for processing
US9965783B2 (en) 2014-02-07 2018-05-08 Uber Technologies, Inc. User controlled media for use with on-demand transport services
US10282704B2 (en) * 2014-03-07 2019-05-07 Jerry L. Mills System and method for controlling sale of a company
WO2015138013A1 (en) 2014-03-13 2015-09-17 Uber Technologies, Inc. Configurable push notifications for a transport service
US20170103370A1 (en) * 2014-05-12 2017-04-13 Diebold, Incorporated In-branch financial institution calednaring solution
US9536271B2 (en) 2014-05-16 2017-01-03 Uber Technologies, Inc. User-configurable indication device for use with an on-demand transport service
US10467896B2 (en) 2014-05-29 2019-11-05 Rideshare Displays, Inc. Vehicle identification system and method
US9892637B2 (en) 2014-05-29 2018-02-13 Rideshare Displays, Inc. Vehicle identification system
US20170109767A1 (en) * 2014-06-12 2017-04-20 Arie Shpanya Real-time dynamic pricing system
SG11201700669RA (en) 2014-07-30 2017-02-27 Uber Technologies Inc Arranging a transport service for multiple users
US20170140306A1 (en) * 2014-09-22 2017-05-18 o9 Solutions, Inc. Business graph model
US10896432B1 (en) * 2014-09-22 2021-01-19 Amazon Technologies, Inc. Bandwidth cost assignment for multi-tenant networks
US9875471B1 (en) 2014-09-26 2018-01-23 Square, Inc. Appointment and payment handling
US11023928B2 (en) * 2014-09-26 2021-06-01 Square, Inc. Appointment and payment handling
US20160092825A1 (en) * 2014-09-29 2016-03-31 The Boeing Company Predictive fatigue risk management
US10762456B2 (en) * 2014-09-30 2020-09-01 International Business Machines Corporation Migration estimation with partial data
US11328237B2 (en) * 2014-09-30 2022-05-10 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. End-to-end commodity and commodity marking tracking
US10726376B2 (en) * 2014-11-04 2020-07-28 Energage, Llc Manager-employee communication
US10692027B2 (en) * 2014-11-04 2020-06-23 Energage, Llc Confidentiality protection for survey respondents
US11093950B2 (en) * 2015-02-02 2021-08-17 Opower, Inc. Customer activity score
US10325230B2 (en) * 2015-02-02 2019-06-18 Walmart Apollo, Llc Methods and systems for auditing overstock in a retail environment
US20160224913A1 (en) * 2015-02-03 2016-08-04 Infosys Limited Proactive employee retention through engagement indicator
EP3054404A1 (en) * 2015-02-04 2016-08-10 Hexagon Technology Center GmbH Work information modelling
US20160232543A1 (en) * 2015-02-09 2016-08-11 Salesforce.Com, Inc. Predicting Interest for Items Based on Trend Information
US10621598B1 (en) * 2015-04-22 2020-04-14 Richard Greenwald Methods and systems for facilitating interactions
US10997565B2 (en) 2015-06-10 2021-05-04 Square, Inc. Consolidation of calendar appointments
US10325241B2 (en) * 2015-07-14 2019-06-18 Shlomo Uri HAIMI System and method for tracking shelf-life and after-opening usage life of medicaments, foods and other perishables
US20170032300A1 (en) * 2015-07-31 2017-02-02 International Business Machines Corporation Dynamic selection of resources on which an action is performed
US10664777B2 (en) * 2015-09-11 2020-05-26 Workfusion, Inc. Automated recommendations for task automation
US10380608B2 (en) * 2015-09-14 2019-08-13 Adobe Inc. Marketing data communication control
US10290215B2 (en) 2015-10-06 2019-05-14 Gt Gettaxi Limited System for navigating grouped passengers from an event
US20170124530A1 (en) * 2015-11-04 2017-05-04 Schneider Electric It Corporation Systems and methods for an environmental event and task manager
US10467561B2 (en) * 2015-11-05 2019-11-05 Gt Gettaxi Limited System for identifying events and preemptively navigating drivers to transport passengers from the events
US10198704B2 (en) * 2015-11-05 2019-02-05 Charles F Myers Methods for dynamically identifying loads for a trucker
US9939279B2 (en) 2015-11-16 2018-04-10 Uber Technologies, Inc. Method and system for shared transport
US20170169444A1 (en) * 2015-12-10 2017-06-15 Invensense, Inc. Systems and methods for determining consumer analytics
US20170169393A1 (en) * 2015-12-11 2017-06-15 Prakash Vasa Method of managing user contacts and associations between the user contacts
CA3020742A1 (en) * 2016-04-12 2017-10-19 Seniorvu, Llc System and process for matching seniors and staffers with senior living communities
US10713233B2 (en) * 2016-09-16 2020-07-14 Kabushiki Kaisha Toshiba Information management system
US9813510B1 (en) 2016-09-26 2017-11-07 Uber Technologies, Inc. Network system to compute and transmit data based on predictive information
US10325442B2 (en) 2016-10-12 2019-06-18 Uber Technologies, Inc. Facilitating direct rider driver pairing for mass egress areas
US11429986B2 (en) 2016-11-04 2022-08-30 Google Llc Realtime busyness for places
US10719771B2 (en) 2016-11-09 2020-07-21 Cognitive Scale, Inc. Method for cognitive information processing using a cognitive blockchain architecture
US10726342B2 (en) 2016-11-09 2020-07-28 Cognitive Scale, Inc. Cognitive information processing using a cognitive blockchain architecture
US20180165611A1 (en) * 2016-12-09 2018-06-14 Cognitive Scale, Inc. Providing Commerce-Related, Blockchain-Associated Cognitive Insights Using Blockchains
US11126971B1 (en) * 2016-12-12 2021-09-21 Jpmorgan Chase Bank, N.A. Systems and methods for privacy-preserving enablement of connections within organizations
US10355788B2 (en) 2017-01-06 2019-07-16 Uber Technologies, Inc. Method and system for ultrasonic proximity service
US10929818B2 (en) * 2017-02-16 2021-02-23 Seoul National University R&Db Foundation Wearable sensor-based automatic scheduling device and method
US20180253677A1 (en) * 2017-03-01 2018-09-06 Gregory James Foster Method for Performing Dynamic Data Analytics
US10902483B2 (en) * 2017-04-27 2021-01-26 Lindsay Corporation Computer-implemented method and computer program for designing and cost-estimating irrigation systems
CN107301504B (zh) * 2017-06-12 2018-06-15 合肥工业大学 基于混合蛙跳—路径重连的生产运输协同调度方法和系统
US10929789B2 (en) * 2017-06-26 2021-02-23 Panasonic Intellectual Property Corporation Of America Information processing method, information processing system, and recording medium storing program
US10567520B2 (en) 2017-10-10 2020-02-18 Uber Technologies, Inc. Multi-user requests for service and optimizations thereof
US11315199B2 (en) 2018-10-04 2022-04-26 Honda Motor Co., Ltd. System and method for providing OEM control to maximize profits
US11410109B2 (en) * 2018-11-01 2022-08-09 Precog, LLC Portable real-time experience communications device and monitoring system
JP7171407B2 (ja) * 2018-12-12 2022-11-15 株式会社日立製作所 情報処理装置、生産指示支援方法
US11354610B2 (en) 2018-12-27 2022-06-07 Clicksoftware, Inc. Methods and systems for scheduling location-based tasks and location-agnostic tasks
US11164196B1 (en) * 2019-04-29 2021-11-02 Vivint, Inc. Techniques for lead scoring
US11068856B2 (en) * 2019-04-30 2021-07-20 International Business Machines Corporation Biometric data based scheduling
US11023863B2 (en) * 2019-04-30 2021-06-01 EMC IP Holding Company LLC Machine learning risk assessment utilizing calendar data
US11501233B2 (en) * 2019-05-21 2022-11-15 Hcl Technologies Limited System and method to perform control testing to mitigate risks in an organization
CN110544010B (zh) * 2019-07-30 2023-04-07 同济大学 影响轨道交通系统全局效能涌现的关键要素的辨识方法
US11188853B2 (en) * 2019-09-30 2021-11-30 The Travelers Indemnity Company Systems and methods for artificial intelligence (AI) damage triage and dynamic resource allocation, routing, and scheduling
CA3160192A1 (en) * 2019-11-05 2021-05-14 Strong Force Vcn Portfolio 2019, Llc Control tower and enterprise management platform for value chain networks
US11625797B2 (en) * 2019-11-14 2023-04-11 Mapyourshow, Llc Automated event space management with conflict prevention
US11341438B2 (en) * 2019-11-22 2022-05-24 The Procter & Gamble Company Provisioning and recommender systems and methods for generating product-based recommendations for geographically distributed physical stores based on mobile device movement
US11894128B2 (en) * 2019-12-31 2024-02-06 Cerner Innovation, Inc. Revenue cycle workforce management
US11570276B2 (en) 2020-01-17 2023-01-31 Uber Technologies, Inc. Forecasting requests based on context data for a network-based service
US11720911B2 (en) * 2020-01-22 2023-08-08 Walmart Apollo, Llc Methods and apparatus for electronically determining item pricing
US20210241221A1 (en) * 2020-02-05 2021-08-05 Da-Desk Fz-Llc Predicting grain products loaded on-board vessels
US11526822B2 (en) * 2020-02-10 2022-12-13 Bank Of America Corporation Dynamic resource allocation engine
US11783268B2 (en) * 2020-03-31 2023-10-10 Walmart Apollo, Llc Systems and methods for packing visualizations
US11532059B2 (en) * 2020-04-20 2022-12-20 International Business Machines Corporation Geo-spatial analysis to determine boundaries of traffic regions and classifications of the boundaries for controlling drop-off/pick-up traffic
US20210357865A1 (en) * 2020-05-12 2021-11-18 ZenPayroll, Inc. Event-based timeline creation for personal information tracking
JP2021197039A (ja) * 2020-06-17 2021-12-27 株式会社日立製作所 バースト可能インスタンス推奨装置、方法、及びプログラム。
US11455589B2 (en) * 2020-07-17 2022-09-27 Exoptimum LLC Techniques for obtaining solutions to black-box optimization problems
CA3190049A1 (en) * 2020-08-18 2022-02-24 Edera L3C Change management system and method
US11783386B2 (en) * 2020-10-27 2023-10-10 Ncr Corporation Crowd-sourced activity processing
US11288605B1 (en) * 2020-11-19 2022-03-29 Bnsf Railway Company Grounded operations management system and method therefor
CN112434951A (zh) * 2020-11-25 2021-03-02 中国海洋大学 一种地震灾害等级评估方法及系统
US11587004B2 (en) * 2020-12-10 2023-02-21 Honda Motor Co., Ltd. System and method for placement optimization of public electric vehicle charging stations using telematics data
JP2022135919A (ja) * 2021-03-03 2022-09-15 しるし株式会社 購買分析システム、購買分析方法、及びコンピュータプログラム
US20230101451A1 (en) * 2021-05-27 2023-03-30 Robert E. Dowing Automatic Refinement of Customizable Forecasts for Strategic Management
US11625654B1 (en) * 2022-02-01 2023-04-11 Ventures BRK Social networking meetup system and method
US11488187B1 (en) * 2022-04-11 2022-11-01 Santa Israel Ltd. Managing operations of mobile retail units

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004133520A (ja) * 2002-10-08 2004-04-30 Canon Inc 画像ファイルシステム
JP2005070846A (ja) * 2003-08-26 2005-03-17 Fujitsu Ltd 格納プログラム,それを格納したコンピュータ可読媒体,格納方法,及び格納装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5771381A (en) * 1994-12-13 1998-06-23 Microsoft Corporation Method and system for adding configuration files for a user
US6360280B1 (en) * 1994-12-13 2002-03-19 Microsoft Corporation Method and system for accessing shell folder capabilities by an application program
US5694563A (en) * 1994-12-13 1997-12-02 Microsoft Corporation Method and system for transferring data to common destinations using a common destination list
US5778384A (en) * 1995-12-22 1998-07-07 Sun Microsystems, Inc. System and method for automounting and accessing remote file systems in Microsoft Windows in a networking environment
US6061695A (en) * 1996-12-06 2000-05-09 Microsoft Corporation Operating system shell having a windowing graphical user interface with a desktop displayed as a hypertext multimedia document
US6526413B2 (en) * 1999-09-28 2003-02-25 Microsoft Corporation Architecture for a hierarchical folder structure in hand-held computers
US6915299B1 (en) * 2000-06-23 2005-07-05 Microsoft Corporation Web server document library
TW539951B (en) * 2001-01-17 2003-07-01 Duan-Huei Wu A method transferring resources among operating systems
US7299422B2 (en) * 2002-05-08 2007-11-20 Migo Software, Inc. System and method for transferring personalization information among computer systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004133520A (ja) * 2002-10-08 2004-04-30 Canon Inc 画像ファイルシステム
JP2005070846A (ja) * 2003-08-26 2005-03-17 Fujitsu Ltd 格納プログラム,それを格納したコンピュータ可読媒体,格納方法,及び格納装置

Also Published As

Publication number Publication date
KR101150065B1 (ko) 2012-06-01
WO2006107318A2 (en) 2006-10-12
EP1864230A4 (en) 2009-04-08
CN101151608A (zh) 2008-03-26
US7478085B2 (en) 2009-01-13
WO2006107318A3 (en) 2006-12-21
CN101151608B (zh) 2012-07-11
JP4972082B2 (ja) 2012-07-11
US20060242154A1 (en) 2006-10-26
EP1864230A2 (en) 2007-12-12
KR20070118081A (ko) 2007-12-13

Similar Documents

Publication Publication Date Title
JP4972082B2 (ja) 開発者がシステム上の周知のロケーションを容易に発見し、または拡張するための能力
US7849179B2 (en) System and program for managing devices in a network
JP3929554B2 (ja) ファイル・オブジェクトの生成をバリデーションし、ファイル・オブジェクトへのメッセージをルーチングする方法
US7325007B2 (en) System and method for supporting non-native data types in a database API
US6523042B2 (en) System and method for translating to and from hierarchical information systems
KR100868410B1 (ko) 관리화된 파일 시스템 필터 모델 및 아키텍쳐
JP5787963B2 (ja) コンピュータプラットフォームのプログラミングインターフェース
KR101137188B1 (ko) 객체 시스템 간의 파일 속성 관리를 용이하게 하기 위한프로모션 및 디모션 기술
KR101682738B1 (ko) 관리 시스템 확장성
US9967370B2 (en) OData enabled mobile software applications
JPH10283195A (ja) カーネル・モードにおけるソフトウェア・ドライバを相互接続する方法,コンピュータ・プログラム・プロダクト、システムおよび記録媒体
JPH1097449A (ja) 多値局所化ストリング
JP2006012155A (ja) ユーザ定義型の指定されたメンバを遅延フェッチするシステムおよび方法
CN103853535A (zh) 修改中间件的方法和装置
US6981006B2 (en) Schema-based file conversion
US8234586B2 (en) User interface framework and techniques
US20040133554A1 (en) Efficient file interface and method for providing access to files using a JTRS SCA core framework
US20050183034A1 (en) Menu management in an OLE document environment
CN113377458B (zh) 插件管理方法、装置、电子设备和存储介质
US8200895B2 (en) File system recognition structure
US20040267811A1 (en) Host initiated display, host initiated display application program interface, and host initiated display method
US20080307071A1 (en) Retrieving specific hierarchical information using web services
CN113761040A (zh) 数据库与应用程序双向映射方法、设备、介质及程序产品
JP2000298583A (ja) データ変換処理システム
US20060277480A1 (en) Facilitating communication between user interface components that transmit information in incompatible formats

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080728

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110228

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110530

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110606

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110630

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110824

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20110906

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111226

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120210

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120312

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120406

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150413

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4972082

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250