Here is the declaration of the REALcontrol:
REALcontrol myControl = {
kCurrentREALControlVersion,
"myContainer",
sizeof(myContainerContainerData),
#ifndef WIN32
REALcontrolIsHIViewCompatible | REALdontTryHIViewize,// |
REALcontrolAcceptFocus | REALcontrolFocusRing, //flags
#else
0,//REALcontrolAcceptFocus | REALcontrolFocusRing,//
REALcontrolOwnsCursor,
#endif
130, 131,
80, 22,
WordGuiseContainerProperties, sizeof(WordGuiseContainerProperties) /
sizeof(REALproperty),
nil, 0,
nil, 0, ,
&myContainerBehaviour,
0,
myContainer_RectControlEventInstances, sizeof
(myContainer_RectControlEventInstances) / sizeof(REALeventInstance)
};
Note the REALeventInstance declaration which is defined as:
void myControl_RectControlRemoveFromEventListHandler(REALobject
instance)
{
}
REALeventInstance WordGuiseContainer_RectControlEventInstances[] = {
{"EnableMenuItems", (REALproc)
myControl_RectControlRemoveFromEventListHandler },
{"Close", (REALproc)my_CloseHandler },
{"ConstructContextualMenu", (REALproc)
myControl_RectControlRemoveFromEventListHandler },
{"ContextualMenuAction", (REALproc)
myControl_RectControlRemoveFromEventListHandler },
{"DragEnter", (REALproc)
myControl_RectControlRemoveFromEventListHandler },
{"DragExit", (REALproc)
myControl_RectControlRemoveFromEventListHandler },
{"DragOver", (REALproc)
myControl_RectControlRemoveFromEventListHandler },
{"DropObject", (REALproc)
myControl_RectControlRemoveFromEventListHandler },
{"MouseEnter", (REALproc)
myControl_RectControlRemoveFromEventListHandler },
{"MouseExit", (REALproc)
myControl_RectControlRemoveFromEventListHandler },
{"MouseMove", (REALproc)
myControl_RectControlRemoveFromEventListHandler },
{"MouseWheel", (REALproc)
myControl_RectControlRemoveFromEventListHandler },
{"Open", (REALproc)my_OpenHandler },
};
Most of the RectControl events are simply removed, but
my_CloseHandler and my_OpenHandler are used to implement myControl.
In release 4 my_OpenHandler is never called (nor is
myControl_RectControlRemoveFromEventListHandler:
The carbon-pef log reads:
Exception: EXC_BAD_ACCESS (0x0001)
Codes: KERN_INVALID_ADDRESS (0x0001) at 0xbf806ff0
Thread 0 Crashed:
0 <<00000000>> 0x83eedece 0 + -2081497394
1 <<00000000>> 0xbf807040 0 + -1082101696
Thread 1:
0 LaunchCFMApp 0xb81f326b strchr + 72
1 LaunchCFMApp 0xb818ebf6 pthread_cond_wait + 3114
2 LaunchCFMApp 0xb812ae90 catch_exception_raise_state_identity + 320
3 LaunchCFMApp 0xb812a3ba CallPPCFunctionAtAddressInt + 175496
4 LaunchCFMApp 0xb812a2b1 CallPPCFunctionAtAddressInt + 175231
5 LaunchCFMApp 0xb812af8e catch_exception_raise_state_identity + 574
6 LaunchCFMApp 0xb81c438c pthread_create + 1124
Thread 2:
0 LaunchCFMApp 0xb80f81f4 spin_lock_wrapper + 85180
1 LaunchCFMApp 0xb810bc69 CallPPCFunctionAtAddressInt + 50743
2 LaunchCFMApp 0xb808192e 0xb8000000 + 530734
3 LaunchCFMApp 0xb807b116 0xb8000000 + 504086
4 LaunchCFMApp 0xb808f47a 0xb8000000 + 586874
5 LaunchCFMApp 0xb80e482c spin_lock_wrapper + 4852
Thread 3:
0 LaunchCFMApp 0xb80f7eec spin_lock_wrapper + 84404
1 LaunchCFMApp 0xb8110eb0 CallPPCFunctionAtAddressInt + 71806
2 LaunchCFMApp 0xb808192e 0xb8000000 + 530734
3 LaunchCFMApp 0xb807b116 0xb8000000 + 504086
4 LaunchCFMApp 0xb808f47a 0xb8000000 + 586874
5 LaunchCFMApp 0xb80e482c spin_lock_wrapper + 4852
Thread 0 crashed with i386 Thread State:
eax: 0x01936a34 ebx: 0x00704800 ecx:0x407080bf edx: 0xbf807040
edi: 0xbf807090 esi: 0xbf807040 ebp:0x8200d380 esp: 0xb7fffabc
ss: 0x0000002f efl: 0x00010246 eip:0x83eedece cs: 0x00000027
ds: 0x0000002f es: 0x0000002f fs:0x00000000 gs: 0x00000037
Sufficient to say: A win.exe fails too, it never reaches the
REALeventInstance.
Guess I have to wait for another alpha release.....
Report ID:
xkioeitv
Alfred
_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>
Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>