« 2006年6月 | トップページ | 2006年8月 »

2006年7月の7件の記事

2006.07.29

Google Gadget の Option dialog

を付ける方法。

http://groups.google.com/group/Google-Desktop-Developer/browse_thread/thread/6861711c252823df

ここでは、誰も答えてくれてないので、答えてみよう。(日本語だけど。^^;)

MyCircles のサンプルだと、Options も About もグレーアウトされてて、選択できないの。
で、ちょっと試してみたところ Option dialog は簡単にできたので、その方法をメモメモ。

まずは、ActiveX のプロパティページを作る。
クラスビューの右クリックメニュー→追加→クラスの追加→ATL プロパティページ→短い名前に MyCirclesPropPage とか適当に入れて→完了。
これで、ActiveX のデフォルトのプロパティページが作られる。

あとは、ISpecifyPropertyPagesImp を継承して、COM_MAP と PROP_MAP のマクロで登録すれば、メニューの Options のグレーアウトが解除されて使えるようになった。

----------
class ATL_NO_VTABLE CMyCirclesObj :
    public CComObjectRootEx<CComSingleThreadModel>,
    public IDispatchImpl<IMyCirclesObj, &IID_IMyCirclesObj, &LIBID_MyCirclesLib, /*wMajor =*/1, /*wMinor =*/0>,
    public IPersistStreamInitImpl<CMyCirclesObj>,
    public IOleControlImpl<CMyCirclesObj>,
    public IOleObjectImpl<CMyCirclesObj>,
    public IOleInPlaceActiveObjectImpl<CMyCirclesObj>,
    public IViewObjectExImpl<CMyCirclesObj>,
    public IOleInPlaceObjectWindowlessImpl<CMyCirclesObj>,
    public CComCoClass<CMyCirclesObj, &CLSID_MyCirclesObj>,
    public CComControl<CMyCirclesObj>,
    public ISpecifyPropertyPagesImpl<CMyCirclesObj>   // Salt added
----------

----------
BEGIN_COM_MAP(CMyCirclesObj)
    COM_INTERFACE_ENTRY(IMyCirclesObj)
    COM_INTERFACE_ENTRY(IDispatch)
    COM_INTERFACE_ENTRY(IViewObjectEx)
    COM_INTERFACE_ENTRY(IViewObject2)
    COM_INTERFACE_ENTRY(IViewObject)
    COM_INTERFACE_ENTRY(IOleInPlaceObjectWindowless)
    COM_INTERFACE_ENTRY(IOleInPlaceObject)
    COM_INTERFACE_ENTRY2(IOleWindow, IOleInPlaceObjectWindowless)
    COM_INTERFACE_ENTRY(IOleInPlaceActiveObject)
    COM_INTERFACE_ENTRY(IOleControl)
    COM_INTERFACE_ENTRY(IOleObject)
    COM_INTERFACE_ENTRY(IPersistStreamInit)
    COM_INTERFACE_ENTRY2(IPersist, IPersistStreamInit)
    COM_INTERFACE_ENTRY(ISpecifyPropertyPages)   // Salt added
END_COM_MAP()
----------

----------
BEGIN_PROP_MAP(CMyCirclesObj)
    PROP_DATA_ENTRY("_cx", m_sizeExtent.cx, VT_UI4)
    PROP_DATA_ENTRY("_cy", m_sizeExtent.cy, VT_UI4)
    // エントリの例
    // PROP_ENTRY("Property Description", dispid, clsid)
    // PROP_PAGE(CLSID_StockColorPage)

    PROP_PAGE(CLSID_MyCirclesPropPage)     // Salt added
END_PROP_MAP()
----------

あと、PropertyPage から MyCirclesObj にアクセスするには、
IMyCirclesObj の右クリックメニュー→追加→プロパティの追加→プロパティの種類に int とか入れて、プロパティ名に refresh_interval とか入れれば、

----------
 STDMETHOD(get_refresh_interval)(int* pVal);
 STDMETHOD(put_refresh_interval)(int newVal);
----------

みたいなのが作られるので、
あとはサンプル通りに、

----------
 CComQIPtr<IMyCirclesObj> plugin(m_ppUnk[0]);
 if (plugin) {
  ATLVERIFY(SUCCEEDED(plugin->get_refresh_interval(&refresh_interval)));
 }
----------

とかすれば、プロパティページから、Obj 側の I/F にアクセスできた。

でも、About dialog の付け方がわからない。。。

(←あと2週間ちょっとだけど、Google Gadget を作ってみようと思ったら、ぜひ。)

| | コメント (23) | トラックバック (1)

2006.07.23

車検見積もり

をしてきた。

ほとんど走ってないから特に不具合もなく安上がりだが、代行料、保安基準適合検査、1年点検と同じ検査、で約4万かかってる。自分でやれば、これが浮くんだなぁ、と思いつつ、色々無料交換してくれそうだから、お願いしてきた。

左テールランプ、水分侵入で交換。
エンジンマウント、振動多いから交換。
スターター&スパークプラグ、エンジンの掛かりが悪いから交換。
と、無料交換してくれるらしい。

結構良心的だなぁ。マツダ。

#先週月曜日、大雨の中、ジムカーナ練習でピーピー鳴らせて負荷をかけたのが原因か?なんて、口が裂けても言えない、って感じでした。^^;;(<9000rpm超えるとピーと鳴る)

(←フリーソフトを作るモチベーションアップのために、ぜひ。)

 

| | コメント (1) | トラックバック (0)

2006.07.22

Google Desktop Gadget Contest の期限が延期された

8/14 までに延びた。やった~。(元々は 7/31 までだったの。)

なんか作るぞ~。Tシャツもらうぞ~。

(←フリーソフトを作るモチベーションアップのために、ぜひ。)

 

| | コメント (0) | トラックバック (0)

2006.07.21

PC、やっと直った

HDD のデータが化けたらしく、ここ1週間ぐらい Win2k が起動できず困ってた。<すぐ青画面になるの。;;
RAID0 だし、片方死んだら終わりな訳で、故障率が倍ってことを実感できた。^^;
いくら速く(read は 100MB/sec 超えてる)ても故障率が倍になるのは恐いね。これからはRAID5にしよう。

サーバマシンは生きてるので、エラーコードをググってみると、DAEMON tools が原因っぽかった。けど、初代 VAIO PCG-705 の頃から使ってて特に問題無かったので関係無いだろうな。ただのデータ化けだよ。たぶん。

一応、RealSync を使わせてもらって、自作プログラムだけは30分毎に RAID0 じゃない HDD にバックアップ取ってたので、特に焦ることはなく、安心でした。
ちゃんとバックアップ取りましょう。>お~る。

ICH5R のドライバ FD 作って、Win2k の CD-ROM でブートして、[F6]Key でドライバFD入れて、[修復]で、直りました。
暑さと電源容量不足かと思い、色々最小構成を目指して試してたのはすごく無駄でした。;;

(←フリーソフトを作るモチベーションアップのために、ぜひ。)

 

| | コメント (1) | トラックバック (0)

2006.07.14

Platform SDK

は、ここだ。

けど。。。コンパイルできん。。。;;

Google Desktop SDK のサンプルの GoogleDesktopDisplaySysMonSample をコンパイルしようと http://www.codeproject.com/macro/vsconvert.asp で VS.NET 2002 用に変換したが、、、コンパイルしてみると、winternl.h が見つからず止まってしまった。;;<VS.NET 2002 しか持ってないの;;

で、Platform SDK が古いのだろうと、ここからダウンロード&インストールしてみたのだが、今度は、Platform SDK に入ってる winternl.h でエラーが出て、先に進まず。

ダメだ、寝よっと。^^;

(←フリーソフトを作るモチベーションアップのために、ぜひ。)

| | コメント (0) | トラックバック (0)

2006.07.11

UNICODE な文字列リテラル

Google Desktop SDK のサンプルで L"hoge" というのを見て、なんだっけ?と思ったのでメモ。

L"hoge" は UNICODE なワイド文字列なんだね。忘れてた。^^;
普段、UNICODE なアプリを作るときは、_T("hoge") とするのがクセになってて、ずっと L"hoge" を使ってなかったので、忘れてた。
_T("hoge") と書いとけば、UNICODE が #defnie されてるときは L"hoge" になって、されてない時はそのまま "hoge" でシングル or マルチバイトなのだったね。

Google も _T("hoge") を使うべきだよ。
ここのサンプルも destructor に virtual 付けてなかったりするし。。。
気を付けよう!

(←フリーソフトを作るモチベーションアップのために、ぜひ。)

| | コメント (1) | トラックバック (0)

2006.07.04

『バカはなおせる』

バカはなおせる脳を鍛える習慣、悪くする習慣
バカはなおせる脳を鍛える習慣、悪くする習慣

AsociateHelper を使ってみた。)

おいらもなおせるかも?と思ったよ。

なかなか信頼できそうな内容でよかった。
ワーキングメモリーが重要、走ることは脳にいい、ブランチング課題(入れ子状の問題)で鍛えるのがいい、「神経生理学」「大脳生理学」「神経解剖学」→「神経科学」→「認知神経科学」→「システムズ神経科学」と来てるので、認知神経科学を勉強しているここ5年ぐらいのシステムズ神経科学者が言ってることを信じよう。
とのこと。

けど、○○学ってのが既にあやふやになってる時点でダメかも。。。;;

#中田、ざんねんだね。。。

(←フリーソフトを作るモチベーションアップのために、ぜひ。)

| | コメント (1) | トラックバック (20)

« 2006年6月 | トップページ | 2006年8月 »