⊂⌒~⊃。Д。)⊃ ギブアップ

 一日考えたけど、やっぱりわからん。
 Notifyウィンドウを表示させられないよぅ_| ̄|○
 以下コード。

module ui;

import std.string;
import y4d_aux.widestring;

private import win32.ansi.windows;
import nsmsgs.types;
import nsmsgs.consts;

import system;

//------------------------------------------------------------------------------------------//
private:
// サービスハンドルを記憶する変数
HNsmService hNotify;
HNsmService hMsgBox;

//------------------------------------------------------------------------------------------//
public:
// UI/Notifyサービスをラップする関数
int Notify(char[][] lpText, int nTimeToLive, int nIcon, char[][] lpLinkTo,
           TNotifyClickCallback lpOnClick, int nData)
{
  if ( !hNotify )
    hNotify = GetService(NMS_UI_NOTIFY);

  if ( hNotify )
  {
    TNotifyInfo notifyInfo;

    notifyInfo.cbSize      = notifyInfo.size;
    notifyInfo.lpText      = toWCSz(lpText);
    notifyInfo.nTimeToLive = nTimeToLive;
    notifyInfo.nIcon       = nIcon;
    notifyInfo.lpLinkTo    = toWCSz(lpLinkTo);
    notifyInfo.lpOnClick   = lpOnClick;
    notifyInfo.nData       = nData;
	
    return (int)CallService(hNotify, (WPARAM)&notifyInfo, (LPARAM)0);
  }

  return 0;  // 正常終了か異常終了かは判別不能
}
(以下略)

 system.dはこんな感じ。

module system;

import std.string;

private import win32.ansi.windows;
import nsmsgs.types;
import nsmsgs.consts;

//------------------------------------------------------------------------------------------//
private:
// システム関数のポインタを記憶する変数
TNsmPluginInitInfo NsmInitInfo;

// サービスハンドルを記憶する変数
// なし

//------------------------------------------------------------------------------------------//
public:
// システム関数のポインタを記憶する関数
void SetInitInfo(PNsmPluginInitInfo lpInitInfo)
{
  NsmInitInfo = *lpInitInfo;
  return;
}

// サービスの管理
HNsmService CreateService(char[] lpServiceName, TNsmServiceProc ProcAddr)
{
  return NsmInitInfo.CreateService(toStringz(lpServiceName), ProcAddr);
}
(以下略)

 で呼び出し側はこうなってます。

(略)

      ui.Notify("Onにしました", -1, NMNI_CONNECT, "", &OnNotifyClick, 0);

(略)
extern (Windows)
void OnNotifyClick(int nData)
{
  ui.MessageBox(null, "まゆげ犬の恐怖", MODULENAME, MB_OK);
  return;
}

 デバッグウィンドウにてCallService()がUI/Notifyを呼び出しているところまでは確認。
 ということは引数の中身が何かおかしいはずだけど…
 うーん。わからん。