TBoardItemOnDownloadEvent = function : TDownloadState of object;
// *************************************************************************
+ // \83X\83\8c\97§\82Ä\82ð\8ew\8e¦\82³\82ê\82½
+ // *************************************************************************
+ TBoardItemOnCreateThreadEvent = function(
+ inSubject : string; // \83X\83\8c\83^\83C
+ inName : string; // \96¼\91O(\83n\83\93\83h\83\8b)
+ inMail : string; // \83\81\81[\83\8b\83A\83h\83\8c\83X
+ inMessage : string // \96{\95¶
+ ) : TDownloadState of object; // \8f\91\82«\8d\9e\82Ý\82ª\90¬\8c÷\82µ\82½\82©\82Ç\82¤\82©
+
+ // *************************************************************************
// \82±\82Ì\94Â\82É\82¢\82\82Â\82Ì\83X\83\8c\82ª\82 \82é\82©\97v\8b\81\82³\82ê\82½
// *************************************************************************
TBoardItemOnEnumThreadEvent = procedure(
TBoardItem = class(TObject)
private
// \83N\83\89\83X\82Ì\83C\83\93\83X\83^\83\93\83X
- FInstance : DWORD;
+ FInstance : DWORD;
// \83_\83E\83\93\83\8d\81[\83h\82ð\8ew\8e¦\82³\82ê\82½
- FOnDownload : TBoardItemOnDownloadEvent;
+ FOnDownload : TBoardItemOnDownloadEvent;
+ // \83X\83\8c\97§\82Ä\82ð\8ew\8e¦\82³\82ê\82½
+ FOnCreateThread : TBoardItemOnCreateThreadEvent;
// \82±\82Ì\94Â\82É\82¢\82\82Â\82Ì\83X\83\8c\82ª\82 \82é\82©\97v\8b\81\82³\82ê\82½
- FOnEnumThread : TBoardItemOnEnumThreadEvent;
+ FOnEnumThread : TBoardItemOnEnumThreadEvent;
// \83t\83@\83C\83\8b\96¼\82©\82ç\83X\83\8c\83b\83h\82Ì URL \82ð\97v\8b\81\82³\82ê\82½
FOnFileName2ThreadURL : TBoardItemOnFileName2ThreadURLEvent;
public
// ===== \83C\83x\83\93\83g
- property OnDownload : TBoardItemOnDownloadEvent read FOnDownload write FOnDownload;
- property OnEnumThread : TBoardItemOnEnumThreadEvent read FOnEnumThread write FOnEnumThread;
+ property OnDownload : TBoardItemOnDownloadEvent read FOnDownload write FOnDownload;
+ property OnCreateThread : TBoardItemOnCreateThreadEvent read FOnCreateThread write FOnCreateThread;
+ property OnEnumThread : TBoardItemOnEnumThreadEvent read FOnEnumThread write FOnEnumThread;
property OnFileName2ThreadURL : TBoardItemOnFileName2ThreadURLEvent read FOnFileName2ThreadURL write FOnFileName2ThreadURL;
// ===== ThreadItem \82É\8eæ\93¾\81^\90Ý\92è\89Â\94\\82È\83v\83\8d\83p\83e\83B
inherited Create;
FInstance := inInstance;
OnDownload := nil;
+ OnCreateThread := nil;
OnEnumThread := nil;
OnFileName2ThreadURL := nil;
end;
// *************************************************************************
+// \83X\83\8c\97§\82Ä\82ð\8ew\8e¦\82³\82ê\82½
+// *************************************************************************
+function BoardItemOnCreateThread(
+ inInstance : DWORD; // BoardItem \82Ì\83C\83\93\83X\83^\83\93\83X
+ inSubject : PChar; // \83X\83\8c\83^\83C
+ inName : PChar; // \96¼\91O(\83n\83\93\83h\83\8b)
+ inMail : PChar; // \83\81\81[\83\8b\83A\83h\83\8c\83X
+ inMessage : PChar // \96{\95¶
+) : TDownloadState; stdcall; // \8f\91\82«\8d\9e\82Ý\82ª\90¬\8c÷\82µ\82½\82©\82Ç\82¤\82©
+var
+ context : Pointer;
+ boardItem : TBoardItem;
+begin
+
+ try
+ repeat
+ context := Pointer( ThreadItemGetLong( inInstance, tipContext ) );
+ if not Assigned( context ) then
+ Break;
+
+ if not (TObject( context ) is TBoardItem) then
+ Break;
+
+ boardItem := TBoardItem( context );
+ if not Assigned( boardItem.OnCreateThread ) then
+ Break;
+
+ Result := boardItem.OnCreateThread( string( inSubject ), string( inName ), string( inMail ), string( inMessage ) );
+ Exit;
+ until True;
+ except end;
+
+ Result := dsError;
+
+end;
+
+// *************************************************************************
// \82±\82Ì\94Â\82É\82¢\82\82Â\82Ì\83X\83\8c\82ª\82 \82é\82©\97v\8b\81\82³\82ê\82½
// *************************************************************************
procedure BoardItemOnEnumThread(
BoardItemCreate,
BoardItemDispose,
BoardItemOnDownload,
+ BoardItemOnCreateThread,
BoardItemOnEnumThread,
BoardItemOnFileName2ThreadURL;