文字列リソースアクセスモジュール resource_get.hsp

/*
文字列リソースアクセスモジュール
Copyright(C) SekiSekki
Version:1.0.0

文字列リソースにアクセスするためのモジュールです。

※ライセンス表示
	  当ソースコードのライセンス表示は以下のとおりです。
	  ライセンスは3条項BSDライセンスに相当します。
	  (凡例: #著作権表示 *本条件 +免責条項)
	-----------------------------------------------------------------------
	# Copyright (c) 2020,SekiSekki
	  All rights reserved.

	  ソースコード形式かバイナリ形式か、変更するかしないかを問わず、
	  以下の条件を満たす場合に限り、再頒布および使用が許可されます。

	* ソースコードを再頒布する場合、上記の著作権表示、本条件一覧、
	  および下記免責条項を含めること。

	* バイナリ形式で再頒布する場合、頒布物に付属のドキュメント等の資料に、
	  上記の著作権表示、本条件一覧、および下記免責条項を含めること。

	* 書面による特別の許可なしに、本ソフトウェアから派生した製品の宣伝または
	  販売促進に、SekiSekki(SekiSekki.net)の名前またはコントリビューターの名前を
	  使用してはならない。

	+ 本ソフトウェアは、著作権者およびコントリビューターによって「現状のまま」
	  提供されており、明示黙示を問わず、商業的な使用可能性、および特定の目的に対する
	  適合性に関する暗黙の保証も含め、またそれに限定されない、いかなる保証もありません。
	  著作権者もコントリビューターも、事由のいかんを問わず、 損害発生の原因いかんを
	  問わず、かつ責任の根拠が契約であるか厳格責任であるか(過失その他の)不法行為で
	  あるかを問わず、仮にそのような損害が発生する可能性を知らされていたとしても、
	  本ソフトウェアの使用によって発生した(代替品または代用サービスの調達、
	  使用の喪失、データの喪失、利益の喪失、業務の中断も含め、またそれに限定されない)
	  直接損害、間接損害、偶発的な損害、特別損害、懲罰的損害、または結果損害について、
	  一切責任を負わないものとします。
	-----------------------------------------------------------------------
*/

/*-------HDL 説明事項------------
%dll
resource_get
文字列リソースアクセスモジュール
文字列リソースにアクセスするためのモジュールです。

%port
Win

%author
Copyright(C) SekiSekki

%url
https://sekisekki.net/

%note
当モジュールをcommonフォルダにコピーして、#include でインクルードすることで使用可能。
commonフォルダ内にこのファイルが存在するとき、HSP Docs Libraryに自動的に命令が登録されます。
実行ファイルのあるディレクトリにHSPCMP.dllを設置する必要があります。

%group
外部拡張モジュール
------------------------------*/

//文字列リソースアクセスモジュール
#module
#include "kernel32.as"
#include "user32.as"
;リソースファイルの文字列を呼び出します。
;P1 リソースファイル名".exe,.dll等"
;P2 リソースID
#defcfunc resource_get str p1,int p2
/*---------HDL 説明事項----------
%index
resource_get
リソースファイルの文字列取得

%inst
概要
リソースファイルの文字列を取得します。

%prm
(str P1)
 P1:書き込み可能かどうかを調べるファイル名
 P2:リソースID

val:戻り値
 str:指定されたリソースに記載された内容

%sample
;サンプルスクリプト
#include "resource_get.hsp"
	f="shell32.dll"
	i=10150
	mes resource_get (f,i)

%href

%-------------------*/
	st=p1
	nBufferMax=64
	sdim lpBuffer,nBufferMax
	LoadLibrary varptr(st)
	hinst=stat
	loadString hinst ,p2,varptr(lpBuffer),nBufferMax 
	FreeLibrary hinst
	return lpBuffer
#global