名前 題名 ▼ Mr.XRAYさん > [お気に入りに追加]のダイアログ表示のコードを書いてみました. > shdocvw.dll内のDoAddToFavDlgという関数で表示(モーダル表示)できるんだそうです. > > VCLで未定義のWin32 API関数の使用 > http://mrxray.on.coocan.jp/Delphi/Others/Usage_Win32API.htm#01 > > で,関数そのものを使うのは簡単にできるんですが. > やってみちら,文字が1文字分しか処理してくれんない. > この関数,Ansi版だったんですね.で,AnsiCharに直して動作しました. > > う〜む.何か,つまらない. > サンプルプログラム集掲載はボツですね. > 動作確認は,Windows 7 U64 + Delphi 2010(UP5)です. > > unit Unit1; > > interface > > uses > Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, > Dialogs, StdCtrls, ShlObj; > > type > TForm1 = class(TForm) > Button1: TButton; > procedure Button1Click(Sender: TObject); > private > { Private 宣言 } > public > { Public 宣言 } > end; > > //PITEMIDLISTの使用にはusesにShlObjが必要 > //文字列はAnsiでないと正常動作しない > function DoAddToFavDlg( > hWindow : HWND; > wpszInitDir : PAnsiCHAR; > cchInitDir : UINT; > wspzFile : PAnsiCHAR; > cchInitFDir : UINT; > pidlBrowse : PITEMIDLIST > ): BOOL; stdcall; external 'shdocvw.dll'; > > var > Form1: TForm1; > > implementation > > uses ActiveX; > > {$R *.dfm} > > //============================================================================= > // お気に入りダイアログの表示(タスクバーにアイコン表示なし) > // > // 使用する関数のMSDNの記事より > // http://msdn.microsoft.com/en-us/library/aa753580%28VS.85%29.aspx > // > // BOOL DoAddToFavDlg( > // HWND hwnd, > // CHAR *pszInitDir, > // UINT cchInitDir, > // CHAR *pszFile, > // UINT cchInitDir, > // LPITEMIDLIST pidlBrowse > // ); > // > // PItemIDListの使用にはusesにActiveXが必要 > //============================================================================= > procedure TForm1.Button1Click(Sender: TObject); > var > wpszInitDir : array[0..MAX_PATH - 1] of AnsiChar; > wpszFile : array[0..MAX_PATH - 1] of AnsiChar; > pidlBrowse : PItemIDList; > begin > StrPCopy(wpszFile, '素敵なサイト'); > //[お気に入り]フォルダの項目識別子を取得 > SHGetSpecialFolderLocation(Handle, > CSIDL_FAVORITES, > pidlBrowse); > > //DoAddToFavDlgはAnsi版であることに注意 > if DoAddToFavDlg(Handle, > wpszInitDir, //終了後に入力した名前のフルパス名が戻ってくる > MAX_PATH, > wpszFile, //終了後に入力した名前部分のみが戻ってくる > MAX_PATH, > pidlBrowse) //作成先のフォルダを項目識別子で指定 > then begin; > > > //ここに実際の[お気に入り]への登録コードを書く > end; > > //項目識別子の解放 > CoTaskMemFree(pidlBrowse); > end; > > end. > GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link