MSXMLを使ってみる

loadさえできてしまえば後は他の言語のDOMと同じだと思うので、そこまで。

#include <string>

// for MSXML
#import "msxml.dll" rename_namespace("msxml")

using namespace msxml;

int load(std::string path)
{
    IXMLDOMDocumentPtr doc("MSXML.DOMDocument");

    // ファイルをロード
    doc->load(path.c_str());

    // ここであれやこれや。

    return 0;
}

int main(int argc, char* argv[]) {
    // COMの初期化
    ::CoInitialize(NULL);

    // XMLファイルの読み込み
    load("test.xml");

    // COMの後処理
    ::CoUninitialize();

    return 0;
}
最終更新時刻: 2008年11月02日

[dddav] dddavで半角スペースを含むディレクトリにアクセスできない

と、かつとしさんから報告を頂いてるんだけど、手元では再現してないので直しようがないのが現状。(_Д_)アウアウアー

dddav 0.0.8では確かにそのとおりになるが、0.0.9では再現しない。かつとしさんの使われてるのが0.0.8だったりしないでしょうか?一度確認してもらえると助かります。

で、それとは別で、いい加減エラー情報出す実装を入れ始めました。

最終更新時刻: 2008年11月19日

アプリケーション設定情報はどこに保存すべきか

「"Designed for Windows XP" アプリケーション仕様書 2.3 日本語版」より。

CSIDL_APPDATA
このフォルダは、ユーザー プロファイルを使ったローミングの場合に有効になります。このフォルダを使って、ユーザー固有のアプリケーション設定をすべて保存します。たとえば、アプリケーションで使用するカスタム辞書をユーザーが指定できる場合、その辞書はここに保存することになります。このように、ユーザーがコンピュータ間をローミングすると、辞書も一緒にローミングします。また、これにより他のユーザーも自分専用のカスタム辞書を持つことができるようになります。
CSIDL_LOCAL_APPDATA
このフォルダは移動しないアプリケーション データの保存に使われます。このフォルダもユーザー プロファイルの一部であるため、ユーザーごとの情報を保存します。ユーザーが設定したモニタの解像度など、コンピュータに依存するアプリケーション データはここに保存しなければなりません。
コンピュータが異なるとモニターも異なる可能性が高いため、このデータをローミングしてはなりません。また、簡単に再作成できる大きなブロックのデータや一時ファイルはここに保存して、ローミングに影響するダウンロード時間を最小限にしなければなりません。
例  Internet Explorer はダウンロードした .html/.gif  のページのキャッシュをここに置くため、ユーザーとともにローミングすることはありません。しかし、小さな Cookie と履歴リストは CSIDL_APPDATA に記憶されるため、ローミングすることになります。
CSIDL_COMMON_APPDATA
このフォルダは、ユーザー固有でないアプリケーション データの保存に使います。制限付きユーザーは、このフォルダ内の自分で作成したファイル以外のファイルに対しては読み取り権限のみを与えられます。共通ファイルに対する書き込み権限が必要な場合は、アプリケーションのインストール時に、すべてのユーザーに対して「変更」権限を与える、CSIDL_COMMON_APPDATAのサブフォルダを作成する必要があります。

これらのフォルダはユーザからは見えにくい位置にあるため、MyDocumentやアプリケーションと同じ場所に保存するアプリケーションも存在する。

個人的には小さなツールであればアプリケーションと同じ場所でも良いと思う。

最終更新時刻: 2008年11月12日

google gearsのソースコード

http://code.google.com/p/google-gears/source

C++で書かれてる。あとで読む。

最終更新時刻: 2008年10月01日