rem: msg->what = 'canc';
add: if (msg) msg->what = 'canc';
context: extern "C" _EXPORT BDataIO * init_transport	(	BMessage *	msg	){	BFile * 		file;	FileSelector *	selector;	entry_ref		ref;		printf("init_transport\n");	selector = new FileSelector();	if (selector->Go(&ref) != B_OK)		return NULL;	file = new BFile(&ref, B_WRITE_ONLY | B_CREATE_FILE | B_ERASE_FILE);	if ( file->InitCheck() != B_OK ) {		msg->what = 'canc';	// Indicates user cancel the panel...		delete file;		return NULL;	};			AddFile(file);		BPath path;	path.SetTo(&ref);		// Print transport add-ons should set to 'okok' the message on success 	msg->what = 'okok';		msg->AddString("path", path.Path()); // Add path of new choosen file to transport message	return file;}