Skip to content

Instantly share code, notes, and snippets.

View earlgreyxxx's full-sized avatar

Kenji Nakagawa earlgreyxxx

  • Far West Kobe, Hyogo, Japan
  • 03:19 (UTC +09:00)
View GitHub Profile
/*************************************************************************
*
* プログラムに複数のファイルを渡すショートカットメニューハンドラ
* Windows Explorerのシェルエクステンション(COMサーバー)
*
* SharpShellを使用したシェルエクステンション
* base library : https://github.com/dwmkerr/sharpshell
*
* tutorial: https://www.codeproject.com/Articles/512956/NET-Shell-Extensions-Shell-Context-Menus
* -----------------------------------------
# MAKEFILE for nmake
#出力先はカレントディレクトリ禁止
OUTDIR=.\Output
#各ツールフラグ
FLAGS=/nologo
##設定ここまで##################################
CPP=csc.exe
/******************************************************************************
* mkiso
* ドライブもしくはディレクトリからISOファイルを作成します。
*
* [build] Visual Studio 2019 コンソール
* >> tlbimp c:\WINDOWS\System32\imapi2fs.dll
* >> csc mkiso.cs /r:IMAPI2FS.dll
*
* [usage] mkiso サブコマンド コマンドパラメーター
* サブコマンド: drv => CD/DVD/BDドライブに挿入されているメディアから
/******************************************************************************
* DDWin
* ドライブレター(コロンは不要:エラーチェック無し)を指定してダンプをファイルに出力します。
*
* 指定できるドライブはCD-ROMかDVDメディアなど。
* (市販のDVD-ROMなどプロテクトがあるメディアは当然ですがエラーになります。)
*
* 単にWindowsAPIのCreateFileで物理ドライブをオープンして
* ファイルにコピーしているだけです。
*
/*
若干修正(2009/3/20)
メモリ確保は一回だけ(2009/3/21)
キャスト演算子のオーバーロード追加(2009/3/21)
*/
#define HEAP_INITIAL_SIZE 0
#define HEAP_MAX_SIZE 0
#include <windows.h>
class CAllocator
{
/**********************************************************************
ex.)
version(jQuery().jquery,'>=','1.4') returns false or true
***********************************************************************/
function version(a,op,b)
{
a = a.split('.');
b = b.split('.');
var ia,ib;
/*******************************************************************
■コマンドプロンプトのすべての操作をテキストファイルへ書き出します。
※ほとんどエラーチェック・処理をしていないテストコード
※書き出すファイルは、#define LOGFILE TEXT("~") で指定。
********************************************************************/
/*
テストなので、以下のコードには意味はありません。
*/
//引数あり版をコール
Message.Warn(123456789);
var text = Message.Text;
Message.Text = "テキストを変更しました。";
//引数なし版をコール
//スクリプトで公開するオブジェクト名(上記と同じもの)
#define SCRIPT_OBJECT_NAME L"Message"
//マクロ定義
#define CREATEINSTANCE(C,I,P) (SUCCEEDED(CoCreateInstance((C),NULL,CLSCTX_INPROC_SERVER,(I),(reinterpret_cast<LPVOID*>(P)))))
#define QI(X,Y,Z) ((X)->QueryInterface((Y),(reinterpret_cast<LPVOID*>(Z))))
#define RELEASE(X) {if(X){(X)->Release(); X=NULL;}}
/*
JScriptをホストして、引数で渡されたスクリプトを実行する。
#pragma comment(lib,"comsuppw.lib")
#pragma warning( disable : 4100 4101)
#include <windows.h>
#include <ActivScp.h>
#include <comdef.h>
//スクリプトで公開するオブジェクト名
#define SCRIPT_OBJECT_NAME L"Message"
/*