FLoad : TOnLoad;
FVersionInfo : TOnVersionInfo;
FAcceptURL : TOnAcceptURL;
+ FExtractBoardURL : TOnExtractBoardURL;
FPlugInMenu : TOnPlugInMenu;
FCreateThreadItem : TThreadItemCreate;
var outRelease : string; var outRevision : DWORD );
// \8ew\92è\82µ\82½ URL \82ð\82±\82Ì\83v\83\89\83O\83C\83\93\82Å\8eó\82¯\95t\82¯\82é\82©\82Ç\82¤\82©
function AcceptURL( inURL : string ) : TAcceptType;
+ // URL\82©\82ç\8eg\82¦\82éBoard\82ÌURL\82ð\93±\82«\8fo\82·
+ function ExtractBoardURL( inURL : string ): string;
// \83\81\83j\83\85\81[\83n\83\93\83h\83\89
procedure PlugInMenu( inHandle : HMENU );
implementation
-uses GikoSystem;
+uses GikoSystem, BoardGroup;
// *************************************************************************
// BoardPlugin \83t\83H\83\8b\83_\82É\82 \82é\83v\83\89\83O\83C\83\93\82ð\91S\82Ä\83\8d\81[\83h
pluginNames := TStringList.Create;
try
//GikoSys.GetFileList( GikoSys.Setting.GetBoardPlugInDir, '*', pluginNames, False, False );
- GikoSys.GetFileList( GikoSys.Setting.GetBoardPlugInDir, '*', pluginNames, False );
+ pluginNames.BeginUpdate;
+ GikoSys.GetFileList( GikoSys.Setting.GetBoardPlugInDir, '*.dll', pluginNames, False );
+ pluginNames.EndUpdate;
SetLength( BoardPlugIns, pluginNames.Count );
-
+ //
+ SetLength( BoardGroups, pluginNames.Count + 1 );
+ BoardGroups[0] := TBoardGroup.Create;
+ BoardGroups[0].Sorted := true;
+ BoardGroups[0].BoardPlugIn := nil;
+ //
bound := pluginNames.Count - 1;
for i := 0 to bound do begin
try
BoardPlugIns[ i ] := TBoardPlugIn.CreateFromName( pluginNames.Strings[ i ] );
BoardPlugIns[ i ].Loaded;
+ BoardGroups[ i + 1 ] := TBoardGroup.Create;
+ BoardGroups[ i + 1 ].Sorted := True;
+ BoardGroups[ i + 1 ].BoardPlugIn := BoardPlugIns[ i ];
except end;
end;
finally
FLoad := nil;
FVersionInfo := nil;
FAcceptURL := nil;
+ FExtractBoardURL := nil;
FPlugInMenu := nil;
FCreateThreadItem := nil;
Result := atNoAccept;
end;
-
+// *************************************************************************
+// \8ew\92è\82µ\82½ URL \82©\82ç\8eg\82¦\82éBoard\82ÌURL\82ð\93±\82«\8fo\82·
+// *************************************************************************
+function TBoardPlugIn.ExtractBoardURL(
+ inURL : string
+) : string;
+var
+ URL : PChar;
+// tmp : string;
+begin
+ Result := inURL;
+ if Assigned( FExtractBoardURL ) then begin
+ FExtractBoardURL( PChar(inURL), URL);
+ Result := string(URL);
+ DisposeResultString(URL);
+ end;
+end;
// *************************************************************************
// \83\81\83j\83\85\81[\83n\83\93\83h\83\89
// *************************************************************************
FLoad := GetProcAddress( FModule, 'OnLoad' );
FVersionInfo := GetProcAddress( FModule, 'OnVersionInfo' );
FAcceptURL := GetProcAddress( FModule, 'OnAcceptURL' );
+ FExtractBoardURL := GetProcAddress( FModule, 'OnExtractBoardURL' );
FPlugInMenu := GetProcAddress( FModule, 'OnPlugInMenu' );
FCreateThreadItem := GetProcAddress( FModule, 'ThreadItemCreate' );