Cで書いたプログラムを.NET(C#)に移植しているのですが、C#からNDdeShareAddという
nddeapi.dllのAPIを使おうと下記のように書いてみたのですが、呼び出し時にインスタンスが
なんたらとかいうエラーが出てしまいます。
たぶん構造体の受渡に失敗しているような気がするのですが、みなさん助けてください(><)

[StructLayout(LayoutKind.Sequential, Pack=1)]
public struct NDdeShareInfo {
  public long   lRevision;
  public char[] lpszShareName;
  public long   lShareType;
  public char[] lpszAppTopicList;
  public long   fSharedFlag;
  public long   fService;
  public long   fStartAppFlag;
  public long   nCmdShow;
  public long[] qModifyId;
  public long   cNumItmes;
  public string lpszItemList;
}

[DllImport("nddeapi.dll", EntryPoint="NDdeShareAdd", CharSet=CharSet.Ansi)]
public static extern uint NDdeShareAdd(
  string lpszServer,
  int    level,
  ref    SecurityDescriptor  pSD,
  ref    NDdeShareInfo lpNDdeShareInfo,
  long   cbShareInfo
);