iambic Mail または Agendus Pro Mail を使って、他のアプリからメールを送る方法。

// 起動コード
#define sysAppLaunchCmdNewEmail  sysAppLaunchCmdCustomBase + 0x0100
// パラメータブロック
typedef struct {
	UInt32 launchCreator;	// 呼出すアプリのクリエータID
	Char toField[128];		// 宛先(メールアドレス)
} NewEmailParamsType;
// 起動コード
#define sysAppLaunchCmdNewEmail  sysAppLaunchCmdCustomBase + 0x0100
// パラメータブロック
typedef struct {
  UInt32 launchCreator; // 呼出すアプリのクリエータID
  Char toField[128];    // 宛先(メールアドレス)
} NewEmailParamsType;
  • 宛先だけが入ったメール編集画面が起動。
  • launchCreatorに呼出す側のクリエータIDを入れておくと、iambic Mailの処理が終わった時点で、起動コード「sysAppLaunchCmdNormalLaunch」で元のアプリを起動する。

サンプル

すべてを展開すべてを収束
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 
 
 
 
 
 
 
 
 
-
|
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
!
|
|
!
|
#spanend
 UInt16        cardNo;
 LocalID        dbID;
 DmSearchStateType searchInfo;
 NewEmailParamsType *cmdPBP;
 
 if (DmGetNextDatabaseByTypeCreator(true, &searchInfo,
     sysFileTApplication, 'JetM', true, &cardNo, &dbID)
     != dmErrCantFind)
 {
#spanadd
#geshi(C){{
#spanend
#spanadd
UInt16        cardNo;
#spanend
#spanadd
LocalID        dbID;
#spanend
#spanadd
DmSearchStateType searchInfo;
#spanend
#spanadd
NewEmailParamsType *cmdPBP;
#spanend
#spanadd
 
#spanend
#spanadd
if (DmGetNextDatabaseByTypeCreator(true, &searchInfo,
#spanend
    sysFileTApplication, 'JetM', true, &cardNo, &dbID)
    != dmErrCantFind)
#spanadd
{
#spanend
  cmdPBP = (NewEmailParamsType *)MemPtrNew(sizeof(NewEmailParamsType));
 
#spanadd
 
#spanend
  cmdPBP->launchCreator = MyApplicationCreatorID;
  StrCopy (cmdPBP->toField, MyEmailAddressStr);
 
#spanadd
 
#spanend
  if (MemPtrSetOwner(cmdPBP, 0) == errNone)
   SysUIAppSwitch (cardNo, dbID, sysAppLaunchCmdNewEmail, cmdPBP);
    SysUIAppSwitch (cardNo, dbID, sysAppLaunchCmdNewEmail, cmdPBP);
  else
   MemPtrFree (cmdPBP);
 }
    MemPtrFree (cmdPBP);
#spanadd
}
#spanend