私は、「良い」例と「特定の」ドキュメント (Unix 上) のために NPAPI に苦労してきました。私は、次libflashplayer.so
のような特定の情報にアクセスできる を持っています。
nm -D libflashplayer.so | more
00000000005cc4e0 T FlashPlayer_11_2_202_235_FlashPlayer
00000000005cc4a0 T Flash_DisableLocalSecurity
00000000005cc4c0 T Flash_EnforceLocalSecurity
00000000005ca870 T NP_GetMIMEDescription
00000000005ca850 T NP_GetValue
00000000005ca4d0 T NP_Initialize
00000000005ca4c0 T NP_Shutdown
これを行うことで、MIMEDescription を簡単に確認できました。フラッシュ MIME を返します。
static char* (*mNP_GetMIMEDescription)(void);
//MAIN
lib = dlopen("./libflashplayer.so", RTLD_LAZY | RTLD_LOCAL);
*(void **) &mNP_GetMIMEDescription = dlsym(lib, "NP_GetMIMEDescription");
fprintf(stderr, "NP_GetMIMEDescription=%p\n", mNP_GetMIMEDescription);
fprintf(stderr, "NP_GetMIMEDescription=%s\n", mNP_GetMIMEDescription());
//output
NP_GetMIMEDescription=0x7f2d2239f870
NP_GetMIMEDescription=application/x-shockwave-flash:swf:Shockwave Flash;application/futuresplash:spl:FutureSplash Player
Xlib
現在、ウィンドウでコンテンツをレンダリングする (または、swf ファイルをテストして開く) 方法について本当に迷っています。まず、私はNP_INITIALIZE
(私が理解していることから)グローバル初期化(特に「インスタンス」)NPNetscapeFuncs
を提供すると信じています。NPPluginFuncs
次に、楽しい部分が始まります。私の推測 (私が読んで理解していることで、間違っている場合は修正してください) は、プラグインのインスタンスを (NPP_New を使用して) 作成し、その後、ウィンドウを ( を使用してNPP_SetWindow
) プラグイン インスタンスをリンクするように設定し、私のウィンドウ(Xlib
たとえば...)