From: pottier@clipper.ens.fr (Francois Pottier)
Subject: csmp-digest-v3-045
Date: Thu, 14 Jul 1994 13:12:02 +0200 (MET DST)

C.S.M.P. Digest             Thu, 14 Jul 94       Volume 3 : Issue 45
 
Today's Topics:
 
        AppleShare programming?
        Composing and INIT *NARF*
        FSSpec of own INIT
        Help: DragGrayRgn() Action Proc
        Learning TCP
        Modal Dialog Filter & Delete key
        OLE on the Macintosh
        Omission in Universal Headers: TrackControl()
        Where does data go when no PPCRead is pending?



The Comp.Sys.Mac.Programmer Digest is moderated by Francois Pottier
(pottier@clipper.ens.fr).
 
The digest is a collection of article threads from the internet newsgroup
comp.sys.mac.programmer.  It is designed for people who read c.s.m.p. semi-
regularly and want an archive of the discussions.  If you don't know what a
newsgroup is, you probably don't have access to it.  Ask your systems
administrator(s) for details.  If you don't have access to news, you may
still be able to post messages to the group by using a mail server like
anon.penet.fi (mail help@anon.penet.fi for more information).
 
Each issue of the digest contains one or more sets of articles (called
threads), with each set corresponding to a 'discussion' of a particular
subject.  The articles are not edited; all articles included in this digest
are in their original posted form (as received by our news server at
nef.ens.fr).  Article threads are not added to the digest until the last
article added to the thread is at least two weeks old (this is to ensure that
the thread is dead before adding it to the digest).  Article threads that
consist of only one message are generally not included in the digest.

The digest is officially distributed by two means, by email and ftp.

If you want to receive the digest by mail, send email to listserv@ens.fr
with no subject and one of the following commands as body:
    help		                Sends you a summary of commands
    subscribe csmp-digest Your Name	Adds you to the mailing list
    signoff csmp-digest			Removes you from the list
Once you have subscribed, you will automatically receive each new
issue as it is created.

The official ftp info is //ftp.dartmouth.edu/pub/csmp-digest.
Questions related to the ftp site should be directed to
scott.silver@dartmouth.edu. Currently no previous volumes of the CSMP
digest are available there.

Also, the digests are available to WAIS users.  To search back issues
with WAIS, use comp.sys.mac.programmer.src. With Mosaic, use
http://www.wais.com/wais-dbs/comp.sys.mac.programmer.html.


-------------------------------------------------------

>From marcn@cs.uiuc.edu (Marc Nardulli)
Subject: AppleShare programming?
Date: 28 Jun 1994 20:04:09 GMT
Organization: University of Illinois

Hello all,
	I am looking for an easy way to allow users to log on to
one of our Mac servers through Appleshare by using their Unix
logon and password.  I have heard that there is some sort
of AppleShare API out there, but I don't know anything 
beyond that.  Does anybody know if the AppleShare API
can be used for the purpose I want it for, and if so,
where I might be able to get it?
				Thanks a lot,
					            Marc

- ---------------------------------------------
Marc Nardulli        e-mail:marcn@ncsa.uiuc.edu
Phone:               (217) 333-0158
NCSA Mac Team

+++++++++++++++++++++++++++

>From rmah@panix.com (Robert S. Mah)
Date: Tue, 28 Jun 1994 20:12:33 -0500
Organization: One Step Beyond

marcn@cs.uiuc.edu (Marc Nardulli) wrote:

> I am looking for an easy way to allow users to log on to one of our Mac
> servers through Appleshare by using their Unix logon and password.  I
> have heard that there is some sort of AppleShare API out there, but I
> don't know anything beyond that.  Does anybody know if the AppleShare
> API can be used for the purpose I want it for, and if so, where I might
> be able to get it?

You can purchase the AppleShare development kit from APDA.  I'm not sure
if you can change the username/passwords in the users & groups files
using the kit.

Cheers,
Rob
___________________________________________________________________________
Robert S. Mah  -=-  One Step Beyond  -=-  212-947-6507  -=-  rmah@panix.com

+++++++++++++++++++++++++++

>From jumplong@aol.com (Jump Long)
Date: 29 Jun 1994 02:48:05 -0400
Organization: America Online, Inc. (1-800-827-6364)

In article <rmah-280694201233@rmah.dialup.access.net>, rmah@panix.com
(Robert S. Mah) writes:

>marcn@cs.uiuc.edu (Marc Nardulli) wrote:
>
>> I am looking for an easy way to allow users to log on to one of
our Mac
>> servers through Appleshare by using their Unix logon and password.
 I
>> have heard that there is some sort of AppleShare API out there,
but I
>> don't know anything beyond that.  Does anybody know if the
AppleShare
>> API can be used for the purpose I want it for, and if so, where I
might
>> be able to get it?
>
>You can purchase the AppleShare development kit from APDA.  I'm not
sure
>if you can change the username/passwords in the users & groups files
>using the kit.

That's the AppleShare 3.0 Developer's Kit from APDA (last time I
looked, it was around $99 US).

The UGLibrary interface that part of that kit gives you write access
to the Users & Groups Data File *only* while the file server and
AppleShare Admin (if you're using AppleShare) are *not* running. 
There is not shared write access to the Users & Groups Data File
between the server software and the UGLibrary interface - however,
you can get read access to the Users & Groups Data File at any time.

One thing to note that many developers seem to miss...

Notice that the name of that SDK is "AppleShare 3.0 Developer's Kit",
not "AppleShare Forever Developer's Kit". That means that it works
with AppleShare 3.0 and AFP file servers based on the AppleShare 3.0
source code.  That includes Macintosh File Sharing, AppleShare Pro,
and AppleShare 4.0.x.  Most of the current AppleShare server code
(and the SDK) is around 4 years old and it is based on the AppleShare
2.0 and 1.0 server code which is even older.  At some point, Apple
will have to rewrite the server to add new features or to improve its
performance.

Since UGLibrary is an object file that you link into your program, by
using that code, you're making your program depend on the current
implementations of the server and of the file format of the Users &
Groups Data File.  If some future version of AppleShare no longer
supports the current format of the Users & Groups Data File, your
program will cease to work.  It not like a Trap where we can keep the
API, but change the implementation beneath.

- Jim Luther


+++++++++++++++++++++++++++

>From dnebing@andy.bgsu.edu (bgsuvax)
Date: 29 Jun 1994 14:15:07 GMT
Organization: Bowling Green State University

jumplong@aol.com (Jump Long) writes:
> One thing to note that many developers seem to miss...
> 
> Notice that the name of that SDK is "AppleShare 3.0 Developer's Kit",
> not "AppleShare Forever Developer's Kit". That means that it works
> with AppleShare 3.0 and AFP file servers based on the AppleShare 3.0
> source code.  That includes Macintosh File Sharing, AppleShare Pro,
> and AppleShare 4.0.x.  Most of the current AppleShare server code
> (and the SDK) is around 4 years old and it is based on the AppleShare
> 2.0 and 1.0 server code which is even older.  At some point, Apple
> will have to rewrite the server to add new features or to improve its
> performance.

  I think that you miss-represent the developer's kit here, Jim.
While the dev kit will work with full blown servers, some of the
implementations do *not* work with system 7 file sharing.  There
are numerous examples of this, the most important is the fact that
on a sys7 server it is not possible to get the list of connected
users (boy what a *big* missing piece, too).

  I must admit that I miss this capability.  I miss it so much that
I tried to find out how the File Sharing Monitory does it.  By
setting a trap break on the list manager trap selector (pack
something or another) I was able to see how it was building the
list of mounted volumes, but it uses some other method to build
the list of connected users.

  I have even gone as far as trying to find a username for the
connected user stored somewhere in memory (by searching with
Macsbug) but no luck.

  As a side note, has anyone out there in net land figured out
how to get this list?

Dave

============================================================
Dave Nebinger                    dnebing@andy.bgsu.edu
Network Manager, Biology Dept.   dnebing@opie.bgsu.edu
Bowling Green State University   dnebing@bgsuopie (bitnet)
Bowling Green, OH 43403          #include <std_disclaimer.h>

             *THE* alt.sources.mac supporter!

+++++++++++++++++++++++++++

>From dnebing@andy.bgsu.edu (bgsuvax)
Date: 29 Jun 1994 14:29:26 GMT
Organization: Bowling Green State University

As a side note to the discussion of the appleshare
dev kit, I have ported the pascal code which demos
how to use the kit.  If anyone is interested, send
me email.  Note that I will not supply the headers,
you have to have the dev kit to get those (I wouldn't
want to steal that $99 from apda :(

Dave

============================================================
Dave Nebinger                    dnebing@andy.bgsu.edu
Network Manager, Biology Dept.   dnebing@opie.bgsu.edu
Bowling Green State University   dnebing@bgsuopie (bitnet)
Bowling Green, OH 43403          #include <std_disclaimer.h>

             *THE* alt.sources.mac supporter!

+++++++++++++++++++++++++++

>From marcn@sparc2.cs.uiuc.edu (Marc Nardulli)
Date: 29 Jun 94 16:30:43 GMT
Organization: University of Illinois at Urbana

jumplong@aol.com (Jump Long) writes:

>>You can purchase the AppleShare development kit from APDA.  I'm not
>sure
>>if you can change the username/passwords in the users & groups files
>>using the kit.

>That's the AppleShare 3.0 Developer's Kit from APDA (last time I
>looked, it was around $99 US).

>The UGLibrary interface that part of that kit gives you write access
>to the Users & Groups Data File *only* while the file server and
>AppleShare Admin (if you're using AppleShare) are *not* running. 
>There is not shared write access to the Users & Groups Data File
>between the server software and the UGLibrary interface - however,
>you can get read access to the Users & Groups Data File at any time.

You mentioned that there was no way that you can change user's and
passwords with the SDK while the server is running.  What I would
like AppleShare do when a user logons on is to:

(1) Check the Users & Groups Data File to see if the correct user
	and password are in there.  If they are then let them in.

(2) Check and see if the given user and password would authenticate
	on one of our Unix servers.  If it would then let them on
	and then update the Users & Groups Data File to hold the 
	new user and password (note: user might not be new).

Is there any way that this is possible.  From your description of
the AppleShare SDK, it can't.  Is there another way that I am overlooking?
Any help would be appreciated.
	Thanks,
		Marc
	

-- 
Marc Nardulli             e:marcn@ncsa.uiuc.edu
C&C Mac Team
National Center for Supercomputing Applications

+++++++++++++++++++++++++++

>From jumplong@aol.com (Jump Long)
Date: 30 Jun 1994 00:17:05 -0400
Organization: America Online, Inc. (1-800-827-6364)

In article <2urvlb$q1f@falcon.bgsu.edu>, dnebing@andy.bgsu.edu
(bgsuvax) writes:

> I think that you miss-represent the developer's kit here, Jim.
> While the dev kit will work with full blown servers, some of the
> implementations do *not* work with system 7 file sharing.

I didn't mean to misrepresent anything, but you're right, File
Sharing doesn't implement the full AppleShare server control API.  I
guess that's why it isn't called the AppleShare/File Sharing
Developer's Kit :)

We could have just said that it was supported by AppleShare only. 
However, I wrote most the original draft of the documentation and the
only reason we even mentioned File Sharing is because I took the time
to try every server control call under File Sharing, and if File
Sharing didn't work the way AppleShare did, document it that way.  I
figured it was better to get most of the interface than to get the
message "that isn't supported" from Apple.

> As a side note to the discussion of the appleshare
> dev kit, I have ported the pascal code which demos
> how to use the kit.

I'm interested. I wrote the Pascal code and I've ported some of the
code to C myself. During the process, I've found a few things that
may cause problems in the future. If you send me your port, I'll put
in the fixes and return it to you.  How's that for service?

- Jim Luther


---------------------------

>From Chuck Simciak <simciac@ccsmtp.ccf.org>
Subject: Composing and INIT *NARF*
Date: Tue, 28 Jun 1994 20:44:48 GMT
Organization: Cleveland Clinic Foundation

I've searched high and low through my THINK C 7.0 manual,
to the tech notes on my BookmarkCD.  I can't find anything
on how to display an icon from an INIT during startup.  And
more importantly how to "animate" the icon.  Everything
I've found rambles about A5 worlds.  Couldn't find it in
the FAQ, err...actually I couldn't find the FAQ.  (where is
it?) Sample code would be tre-cool, particularly in
Symantec THINK C which may or may not be tre-cool.

thanx....

    Chuck Simciak     !"Aw, forget it.  I'm done.  Here, have some
   wxs@po.cwru.edu    ! dynamite down yer pants."
simciac@ccsmtp.ccf.org!         - Slappy Squirrel
WRUW 91.1 FM Cleveland!

+++++++++++++++++++++++++++

>From kenlong@netcom.com (Ken Long)
Date: Wed, 29 Jun 1994 04:23:11 GMT
Organization: NETCOM On-line Communication Services (408 261-4700 guest)

Connect to ftp ftp.uu.net and scout around to find all the faqs.  I 
believe they are in the /usenet directory.

Then, connect to sumex and get the MacFTP list.  Or get it via Gopher 
from MERIT (U. Michigan).  Somewhere in this info you'll find the ftp 
site for alt.sources.mac.  I posted a developer kit, which I got from 
AOL, which contains working shells - I tried them - for a Control Panel, 
an INIT and a patch.

There are other ones out there.  Every once in a while, some new 
programmer tries to do an INIT, control panel or a patch.  He has a hard 
time of it.  But when he finally gets it, he gets so tickled with 
himself, that he'll make shells for them and post them.  Those are not 
the only people that post them, but it happens.

Some programmers that know how to do them, or do them a little better 
than the kits or shells out there, or to fill a compatability need, will 
also post them.

As far as just getting an INIT icon to show up, there are several 
routes.  Get a source project for an init or control panel that already 
does it and see how it's done.  Mark Pilgrim has put out several, such as 
his "Mouse" series.  Jim Walker puts out a "ShowIcon7" source - available 
in his directory, on the U. South Carolina ftp - along with other source.

There are INIT and control panel sources which come with Think C, but I 
don't think there's any showInit source there (I don't mess with them much).

The original ShowInitIcon source has been updated and is in distribution, 
too.

What I do, when I "want to be on the net, but am bored with everything 
I've done so far" is I go down the ftp list and connect to new sites, see 
what they have, get directory indexes, etc.  I've also noticed that many 
colleges have  ftp's that may not be on the Mac ftp list. "ftp.cs.any.edu" 
- a college would have to be very primative to not have a computer 
science class or department (.cs.).

Check at ftp.apple.com, too.  Get their file list containing all their 
files and you're bound to find at least ONE init or control panel source 
that shows load icons, that works.

But there are plenty of them out there.  Enought to start putting "yet 
another" prefixes on them.

-Ken-

+++++++++++++++++++++++++++

>From WalrathW@rferl.org (Wayne Walrath)
Date: Thu, 30 Jun 1994 15:52:01 +0100
Organization: RFE/RL Inc.

In article <1994Jun28.204448.5858@bme.ri.ccf.org>, Chuck Simciak
<simciac@ccsmtp.ccf.org> wrote:

> I've searched high and low through my THINK C 7.0 manual,
> to the tech notes on my BookmarkCD.  I can't find anything
> on how to display an icon from an INIT during startup.  And
> more importantly how to "animate" the icon.  Everything
> I've found rambles about A5 worlds.  Couldn't find it in
> the FAQ, err...actually I couldn't find the FAQ.  (where is
> it?) Sample code would be tre-cool, particularly in
> Symantec THINK C which may or may not be tre-cool.
> 
> thanx....
> 
>     Chuck Simciak     !"Aw, forget it.  I'm done.  Here, have some
>    wxs@po.cwru.edu    ! dynamite down yer pants."
> simciac@ccsmtp.ccf.org!         - Slappy Squirrel
> WRUW 91.1 FM Cleveland!

Look for ShowIcon7 at umich

path: mirror/umich-mac/development/source/showicon7.sit.hqx

Here's some info from the .c file.


>	ShowIcon7.c 	 	ShowINIT compatible routine that shows 'ICN#' and 'iclx'
>flavor icons. 	For use by all INITs in System 7 and beyond. 	 	This code
>is based on Patrick C. Beard's ShowIconFamily 	by Patrick C. Beard,
>which in turn was derived from the 	original ShowInit by Paul Mercer,
>Darin Adler, 	Paul Snively, and Steve Capps. 	 	Modified by James W.
>Walker for compatibility with IconWrap 1.2, 	for use as a separate code
>resource, and to use the new System 7 	icon-drawing routines.  This code
>is in the public domain. 	 	Addresses for James W. Walker:
>76367,2271@compuserve.com or 		walkerj@math.scarolina.edu

As for animating it, I presume that isn't too hard to do using different
icons. I've never used this code so I can't really comment.

-wayne

__ __
Wayne Walrath
walrathw@rferl.org

---------------------------

>From EJ_Campbell@onenet.com (EJ Campbell)
Subject: FSSpec of own INIT
Date: 29 Jun 1994 18:31:18 -0000
Organization: (none)

I want to open the data fork during startup of an INIT I am writing.  Does
anyone know how to do this??  I want to be able to find it know matter where
it is in the System Folder.  I just need a rutine that will return the FSSpec
of my INIT.  Can this be done?? 

Thanks
  -EJ-
***
The opinions expressed above are those of the individual
***
Sent from the founding system of the OneNet Member Network, OneNet Los Altos
OneNet is a global network of FirstClass based communications servers.
For more information, contact OneNet at:
modem:415-948-1349, voice:303-444-2205, email:onenet@onenet.com
***

+++++++++++++++++++++++++++

>From resnick@uiuc.edu (Pete Resnick)
Date: Thu, 30 Jun 1994 14:14:27 -0500
Organization: University of Illinois at Urbana-Champaign

In article <-1829580993.32366611@onla.onenet.com>, EJ_Campbell@onenet.com wrote:

>I want to open the data fork during startup of an INIT I am writing.  Does
>anyone know how to do this??  I want to be able to find it know matter where
>it is in the System Folder.  I just need a rutine that will return the FSSpec
>of my INIT.  Can this be done?? 

Someone should put this code in the FAQ. Upon entering the INIT code,
CurResFile will be the resource file. Pass the result of CurResFile to the
following:

OSErr RefNumToFSSpec(short refNum, FSSpecPtr fileSpec)
{
    OSErr errCode;
    FCBPBRec fcb;
    Str63 tempString;
    
    fcb.ioCompletion = nil;
    fcb.ioNamePtr = tempString;
    fcb.ioVRefNum = 0;
    fcb.ioRefNum = refNum;
    fcb.ioFCBIndx = 0L;
    if((errCode = PBGetFCBInfoSync(&fcb)) == noErr) {
        if(TrapAvailable(_Gestalt) &&
           HasGestaltAttr(gestaltFSAttr, gestaltHasFSSpecCalls)) {
            errCode = FSMakeFSSpec(fcb.ioFCBVRefNum,
                                   fcb.ioFCBParID,
                                   tempString,
                                   fileSpec);
        } else {
            fileSpec->vRefNum = fcb.ioFCBVRefNum;
            fileSpec->parID = fcb.ioFCBParID;
            BlockMove(tempString, fileSpec->name, tempString[0]  +  1);
        }
    }
    return(errCode);
}

Just in case you are curious:

Boolean TrapAvailable(short theTrap)
{
    long trapAddress;
    
    if(theTrap & 0x0800) {
        trapAddress = GetOSTrapAddress(theTrap);
    } else {
        if(theTrap & 0x0200) {
            trapAddress = GetToolTrapAddress(_InitGraf);
            if(trapAddress == GetToolTrapAddress(_InitGraf+0x0200))
                return(false);
        }
        trapAddress = GetToolTrapAddress(theTrap);
    }
    return(trapAddress != GetToolTrapAddress(_Unimplemented));
}

#pragma parameter __A0 GestaltIL(__D0)
long GestaltIL(long selector) = {0xA1AD,0x6702,0x91C8};
#define HasGestaltAttr(x,y) (GestaltIL(x) & (1 << y))

pr
-- 
Pete Resnick    	(...so what is a mojo, and why would one be rising?)
Doctoral Student - Philosophy Department, Gregory Hall, UIUC
System manager - Cognitive Science Group, Beckman Institute, UIUC
Internet: resnick@uiuc.edu

---------------------------

>From jcaufiel@cln.etc.bc.ca (Jannice Caufield)
Subject: Help: DragGrayRgn() Action Proc
Date: Tue, 28 Jun 1994 14:35:39 GMT
Organization: Education Technology Centre of B.C.


I am attempting to use DragGrayRgn() with an actionProc which
updates various graphics as the mouse enters their region.
Specifically, I use CopyBits() and CopyMask() to update the
graphics.  I am attempting to achieve a result similar to the
Finder's highlighting of screen icons as other icons are dragged
across them.

My problem is that it appears as though DragGrayRgn() calls
InvertRgn() to update the drag region.  My calls to CopyBits()
and CopyMask() seem to interfere with the proper execution of
InvertRgn() and images of the drag region are left on my graphics
as the drag region leaves the graphic.

Is there anyone who can offer suggestions about how to get
around this problem?

Brent Taylor <jcaufiel@cln.etc.bc.ca>


+++++++++++++++++++++++++++

>From mgr@aggroup.aggroup.com (Mike Russell)
Date: Tue, 28 Jun 1994 15:59:04 -0800
Organization: the ag group, inc.

In article <1994Jun28.143539.25992@news.etc.bc.ca>, jcaufiel@cln.etc.bc.ca
(Jannice Caufield) wrote:

> 
> I am attempting to use DragGrayRgn()
...
> My problem is that it appears as though DragGrayRgn() calls
> InvertRgn() to update the drag region.

> Is there anyone who can offer suggestions about how to get
> around this problem?

Here's one way to do it.
In your actionproc, XOR out the region before/after you do your graphics.

		/* hide the drag outline */

		GetPenState(&ps);
		PenMode(notPatXor);
		PenPat(pat_gray);
		FrameRgn(drag_region);

  <do your hilighting or whatever>
		
		/* restore the drag region and pen state */
		FrameRgn(drag_region);
  SetPenState(&ps);

+++++++++++++++++++++++++++

>From Jens Alfke <jens_alfke@powertalk.apple.com>
Date: Wed, 29 Jun 1994 21:59:59 GMT
Organization: Apple Computer

Brent Taylor, jcaufiel@cln.etc.bc.ca writes:
> I am attempting to use DragGrayRgn() with an actionProc which
> updates various graphics as the mouse enters their region.
> Specifically, I use CopyBits() and CopyMask() to update the
> graphics.  I am attempting to achieve a result similar to the
> Finder's highlighting of screen icons as other icons are dragged
> across them.

Consider using the Drag Manager. It takes care of virtually all of the work
of animating the gray outline, including the tricky bits like updating it
properly after things are drawn over it. And of course you get all kinds of
other benefits as well...
You can get it from ftp.apple.com.

--Jens Alfke
  jens_alfke@powertalk              Rebel girl, rebel girl,
            .apple.com              Rebel girl you are the queen of my world

---------------------------

>From rosner@aol.com (Rosner)
Subject: Learning TCP
Date: 19 Jun 1994 20:59:03 -0400
Organization: America Online, Inc. (1-800-827-6364)

I want to learn how to program tcp applications. I am especially in
need of some books on the subject specific to the macintosh. As far
as I can see there are none on the subject. Does anyone know? Are
there any ftp sites where i can download sample code? And do I need
more libraries and includes to program tcp apps for Think C?
-dave

+++++++++++++++++++++++++++

>From Mark Hanrek <hanrek@cts.com>
Date: Mon, 20 Jun 1994 05:30:45 GMT
Organization: The Information Workshop

In article <2u2pkn$3gt@search01.news.aol.com> Rosner, rosner@aol.com
writes:

> I want to learn how to program tcp applications. I am especially in
> need of some books on the subject specific to the macintosh. As far
> as I can see there are none on the subject. Does anyone know? Are
> there any ftp sites where i can download sample code? And do I need
> more libraries and includes to program tcp apps for Think C?


The way I learned is an excellent way.

Grab the HyperCard stacks you find that do TCP related things in the
/comm subsection of sumex and umich archives.

There you will find it truly simple to understand what you need to do to
"make things go" with TCP.  In addition, it is in an environment that is
easy to experiment in.

Then when you go to utilize it in your C application, you'll know exactly
what to do, and when.

I can't imagine a simpler way to learn than this.  If you find a way, I'd
like to know about it.


Hope this helps.

Mark Hanrek

+++++++++++++++++++++++++++

>From jk@sparc13.cs.uiuc.edu (J Kreibich)
Date: 20 Jun 94 16:02:04 GMT
Organization: University of Illinois at Urbana


>I want to learn how to program tcp applications. I am especially in
>need of some books on the subject specific to the macintosh. As far
>as I can see there are none on the subject. Does anyone know? 

  There are no "books" on how to do IP stuff with a Macintosh besides
  the MacTCP Programmers Guide, which is avaiable via anon ftp from
  seeding.apple.com.  That will teach you how to make the TCP calls to
  MacTCP, but assumes you know quite a bit about networking already.
  Although many will argue, I found the easiest way to learn MacTCP was
  to understand the networking, and then just look in the guide as to
  what calls do what.  To learn more about basic TCP/IP networking, I
  would recoment "Internetworking with TCP/IP, Vol. 1" by Comer.  This
  will teach you more than you need to know about how IP networks work.
  With this basic understanding, the Programmers Guide makes a lot more
  sense (Assuming you already understand Mac device drivers, interrupt
  call-back code, etc, but that is just part of knowing how to program
  a Mac and has little specifically to do with networking).

>Are
>there any ftp sites where i can download sample code? And do I need
>more libraries and includes to program tcp apps for Think C?

  Since everything is through the device manager, you will not need any
  libs, but there are 4 or 5 includes you can use (also on seeding).
  I got to pissed off at Apple's and made my own, however.

 -j

--
Jay Kreibich       University of Illinois, U/C      Undergrad Computer Science
- ----------------------------------------------------------------------------
    "You think that I want to be understood..."  -They Might Be Giants
- ----------------------------------------------------------------------------
<a href="http://delphi.beckman.uiuc.edu/people/jay/main.html">My Home Page</a>

+++++++++++++++++++++++++++

>From andrew@gmvt4.concordia.ca (Andrew Francis)
Date: Mon, 20 Jun 1994 17:59:42 GMT
Organization: Faculty of Commerce, Concordia University

In article <jk.772128124@sparc13.cs.uiuc.edu> jk@sparc13.cs.uiuc.edu
(J Kreibich) writes:

>>I want to learn how to program tcp applications. I am especially in
>>need of some books on the subject specific to the macintosh. As far
>>as I can see there are none on the subject. Does anyone know? 

>  There are no "books" on how to do IP stuff with a Macintosh besides
>  the MacTCP Programmers Guide, which is avaiable via anon ftp from
>  seeding.apple.com.  That will teach you how to make the TCP calls to
>  MacTCP, but assumes you know quite a bit about networking already.
>  Although many will argue, I found the easiest way to learn MacTCP was
>  to understand the networking, and then just look in the guide as to
>  what calls do what.  To learn more about basic TCP/IP networking, I
>  would recoment "Internetworking with TCP/IP, Vol. 1" by Comer.  This
>  will teach you more than you need to know about how IP networks work.
>  With this basic understanding, the Programmers Guide makes a lot more
>  sense (Assuming you already understand Mac device drivers, interrupt
>  call-back code, etc, but that is just part of knowing how to program
>  a Mac and has little specifically to do with networking).

   There is an article in I believe Develop 5 by Steven Faulkenburg
called MacTCP Cookbook. It explains how MacTCP works by explaining 
the construction of NewsWatcher. He also included code to make life
easier for novice programmers.
   An excellent book on TCP/IP programming is the Richard Steven's book
"Unix Network Programming."

>>Are there any ftp sites where i can download sample code? And do I need
>>more libraries and includes to program tcp apps for Think C?
>
>  Since everything is through the device manager, you will not need any
>  libs, but there are 4 or 5 includes you can use (also on seeding).
>  I got to pissed off at Apple's and made my own, however.

   Perhaps you want to look at GUSI ( I believe it is at nic.switch.ch).
It supports the TCP/IP API. Also I believe someone has finally ported a
version over to Think C.

--Andrew

+++++++++++++++++++++++++++

>From sandvik@newton.apple.com (Kent Sandvik)
Date: Mon, 20 Jun 1994 23:51:27 GMT
Organization: Dharma Bums, Inc.

> In article <2u2pkn$3gt@search01.news.aol.com> Rosner, rosner@aol.com
> writes:
> 
> > I want to learn how to program tcp applications. I am especially in
> > need of some books on the subject specific to the macintosh. As far
> > as I can see there are none on the subject. Does anyone know? Are
> > there any ftp sites where i can download sample code? And do I need
> > more libraries and includes to program tcp apps for Think C?

You could also take a look at existing PD source code, such as 
NewsWatcher and NCSA Telnet to see how the various MacTCP calls
are used. I'm sure sumex-aim and similar places have the sources.
Same with the MacDTS TCP samples, check out ftp.apple.com for 
such ones.

Cheers, Kent

-- 
Kent Sandvik
sandvik@apple.com. ALink: KSAND -- Private activities on the net.

+++++++++++++++++++++++++++

>From howardk@cyberstore.ca (Howard Katz)
Date: Mon, 20 Jun 1994 21:34:56 -0800
Organization: Enigmatic Software

In article <CrpJBJ.GH4@newsflash.concordia.ca>, andrew@gmvt4.concordia.ca
(Andrew Francis) wrote:

>    There is an article in I believe Develop 5 by Steven Faulkenburg
> called MacTCP Cookbook. It explains how MacTCP works by explaining 
> the construction of NewsWatcher. He also included code to make life
> easier for novice programmers.
>    An excellent book on TCP/IP programming is the Richard Steven's book
> "Unix Network Programming."

Actually, it's Develop Number 6. We'll give you a cigar anyway.

I also recommend Steven's "TCP/IP Illustrated, Volume 1" from
Addison-Wesley.

More, much more, than you ever wanted to know.

Howard Katz

+++++++++++++++++++++++++++

>From poorman@convex.com (Peter W. Poorman)
Date: 21 Jun 94 20:36:59 GMT
Organization: CONVEX Computer Corporation, Richardson, TX USA

In case in got overlooked for it's obviousness -- you need the MacTCP 
programmer's documentation.  It's FTP-able from seeding.apple.com.

-- Pete
   poorman@convex.com

+++++++++++++++++++++++++++

>From jf1@stirling.ac.uk (Mr Jonathon Fletcher)
Date: 24 Jun 1994 15:05:25 GMT
Organization: University of Stirling

Peter W. Poorman (poorman@convex.com) wrote:
: In case in got overlooked for it's obviousness -- you need the MacTCP 
: programmer's documentation.  It's FTP-able from seeding.apple.com.

Can anyone help me with this - the link from seeding is so slow that I
get timed out after about 40K (of a 717K ascii file). Is there anywhere
else I can get the documentation, or can anyone send it to me ?

The files I'm after are:
seeding.apple.com
/ess/public/mactcp/MacTCP_Dev_Kit/MacTCP_Prog_Guide.hqx
/ess/public/mactcp/MacTCP_Dev_Kit/MacTCP_Prog_Guide.idx.hqx

Sincerely,

-Jon

--
  Jonathon Fletcher, Information Services, Stirling University. 
  j.fletcher@stirling.ac.uk (X400: "/S=jf1/O=stirling/PRMD=uk.ac/C=gb/")


+++++++++++++++++++++++++++

>From tzs@u.washington.edu (Tim Smith)
Date: 30 Jun 1994 00:07:42 GMT
Organization: University of Washington School of Law, Class of '95

Mr Jonathon Fletcher <jf1@stirling.ac.uk> wrote:
>Can anyone help me with this - the link from seeding is so slow that I
>get timed out after about 40K (of a 717K ascii file). Is there anywhere
>else I can get the documentation, or can anyone send it to me ?
>
>The files I'm after are:
>seeding.apple.com
>/ess/public/mactcp/MacTCP_Dev_Kit/MacTCP_Prog_Guide.hqx
>/ess/public/mactcp/MacTCP_Dev_Kit/MacTCP_Prog_Guide.idx.hqx

I just grabbed them with no problem, and then downloaded them to my
Mac.  Normally, I'd now delete them from my account here, but I'll
keep 'em around for a couple days.  Try ftp'ing them from here--maybe
the link will be faster.  They are in public/tzs on ftp.u.washington.edu.

--Tim Smith

---------------------------

>From jbeeghly@u.washington.edu (Jeff Beeghly)
Subject: Modal Dialog Filter & Delete key
Date: 30 Jun 1994 07:12:06 GMT
Organization: University of Washington


DISCLAIMER:  I have been programming in 'C' for several years, but I am 
new to Mac programming (although I do know how to program Windows & GEM).
ALSO, I would like code not specific to sys 7 (ege.  must be able to run 
under sys 6.5 as well).

In a text field within a modal dialog box, let's say I have the string, 
"1234567".  If I move the cursor between the '4' and the '5' characters, 
then press the DELETE key (which is actually the BACKSPACE key), the text 
string becomes "123567".

If I had pressed the DEL key (located just below the HELP key on my extended 
apple keyboard) instead, I would expect to get "123467"... hence, removing 
the '5' character and shifting everything over to the right by one.

In actuallity, I get "1234 567", which seems very strange, but when I 
tried this with several comercial apps out there, the same behaviour occured.

So I was wondering.... what would be the easiest way to achieve what I 
want with a dialog filter?

Right now I have something like....

pascal Boolean DLOGFilter(theDialog, e, iPtr)
DialogPtr	theDialog;
EventRecord	*e;
short		*iPtr;
{
	short	itemType;
	Rect	itemRect;
	Handle	item;
	Str255	tempStr;
	char	theChar;

 
	if(e->what == keyDown || e->what == autoKey)
	{
		theChar = (e->message & charCodeMask);
		if(theChar == kDeleteKey) //kDeleteKey = 127
		{
			GetDItem(theDialog, TEXT_ITEM, &itemType, &item,
				&itemRect);
			GetIText(item, tempStr);
			//put in routine here
			return( TRUE );
		}
	}
}


the routine could do something like this:

1) Find the location of the cursor.
2) move every character from that location to the end of the string over 
by one.

for(i=start; i<tempStr[0]; i++)
{
	tempStr[i] = tempStr[i + 1];
}
tempStr[0]--;


I would like to know:

1) Is this the propper way to do this?
2) How do I determine where the cursor (or the begining of the selected 
text) is at?

+++++++++++++++++++++++++++

>From aep@world.std.com (Andrew E Page)
Date: Thu, 30 Jun 1994 13:35:24 GMT
Organization: The World Public Access UNIX, Brookline, MA


   I think that the first question that I'd like to ask is why
you need to do the editing yourself instead of letting ModalDialog's
default action do it for you?  If you return FALSE after your keyDown
event ModalDialog continues to process the event and delete the
character for you.  

   If you insist on editing the field yourself be aware that the
Dialog manger maintains a single TERec for all the edit field in
a dialog, and stores it in a field accessible by casing the DialogPtr
as a DialogPeek.

-- 
Andrew E. Page   (Warrior Poet) |   Decision and Effort The Archer and Arrow
Mac Consultant                  |     The difference between what we are
Macintosh and DSP Technology    |           and what we want to be.

+++++++++++++++++++++++++++

>From dubois@primate.wisc.edu (Paul DuBois)
Date: 30 Jun 1994 13:48:37 -0500
Organization: Castra Parvulorum

>From article <Cs7pr1.6En@world.std.com>, by aep@world.std.com (Andrew E Page):
>    I think that the first question that I'd like to ask is why
> you need to do the editing yourself instead of letting ModalDialog's
> default action do it for you?  If you return FALSE after your keyDown
> event ModalDialog continues to process the event and delete the
> character for you.  

Read the original message again.  He got the undesired behavior by
letting let the toolbox process the DEL key (different than the DELETE
key).  I.e., the default action he got is not what he wants.
-- 
Paul DuBois
dubois@primate.wisc.edu

+++++++++++++++++++++++++++

>From Jens Alfke <jens_alfke@powertalk.apple.com>
Date: Thu, 30 Jun 1994 23:58:35 GMT
Organization: Apple Computer

Jeff Beeghly, jbeeghly@u.washington.edu writes:
> So I was wondering.... what would be the easiest way to achieve what I 
> want with a dialog filter?

Don't mess with the text directly; let TextEdit do it for you:

if selStart != selEnd
    TEKey(kDeleteKey);  // 0x08
else if( selEnd == teLength-1 )
    SysBeep(3);  // End of text
else
    TEKey(kRightArrowKey);
    TEKey(kDeleteKey);
end if

There's also a freeware extension that patches TextEdit to support the
forward-delete key. I think it's just called "Forward Delete".

--Jens Alfke
  jens_alfke@powertalk              Rebel girl, rebel girl,
            .apple.com              Rebel girl you are the queen of my world

+++++++++++++++++++++++++++

>From bb@lightside.com (Bob Bradley)
Date: Thu, 30 Jun 1994 09:50:42 -0800
Organization: Lightside, Inc.

I think the original poster is trying to implement the forward-delete key
which I don't think ModalDialog handles normally.

In your ModalDialog Filter, when you detect the forward-delete key being
pressed, get the textH field of the DialogRecord (textH is a handle to the
TextEdit record used for the dialog). then you can use the selStart and
selEnd fields of the TERec to determine what it selected or where the
insertion point is (ie if selStart == selEnd, nothing is selection and you
have the insertion point). The text is stored i the hText field of the
TERec so you can use that modify the actual text.

You may want to use the Script Manager cause you may be working with a
non-Roman script where the text may go right to left or characters may be
larger than one byte.

---------------------------

>From mhteas@aol.com (Mhteas)
Subject: OLE on the Macintosh
Date: 23 Jun 1994 21:19:05 -0400
Organization: America Online, Inc. (1-800-827-6364)

Help!  I'm a Mac veteran trying to use OLE on the Macintosh.  I'm
currently hampered both by the lack of solid documentation and by the
provided sample code which is less than clear.  I do need to use OLE,
this is non-negotiable with my client.  So...

Is there anyone who's implemented OLE linking on the Macintosh that
can provide advice?

I've tried emailing, and leaving messages for Microsoft support and
evangelism people and leaving messages on their WINOBJ forum on
Compu$erve all with little result

If you can assist with advice, working sample code, or the voice of
experience, I can be reached at the email address below.

Many thanks,

Malcolm Teas
Teas Technology
mhteas@aol.com

+++++++++++++++++++++++++++

>From d88-jwa@dront.nada.kth.se (Jon Wätte)
Date: 24 Jun 1994 08:53:58 GMT
Organization: The Royal Institute of Technology

In <2udca9$odt@search01.news.aol.com> mhteas@aol.com (Mhteas) writes:

>Is there anyone who's implemented OLE linking on the Macintosh that
>can provide advice?

No.

Basically, OLE sucks. OpenDoc will be out Any Year Now and has a much
clearer and better usage model and content model. If you support OpenDoc,
Apple will provide interchangeability with OLE 2.

Some reasons why OpenDoc is cooler than OLE 2:

- OpenDoc does click-and-type however deep you want.
  OLE has you to click three times to get at a text item in a chart
  in a text item.

- OpenDoc is backed by several large industry vendors, and has freely
  available source code as an OPEN standard.
  OLE is backed/kept by MS, and you can't get source.

- OpenDoc builds on the Bento storage format.
  OLE doesn't (and doesn't even have anything similar)

- OpenDoc lets you have non-rectangular part frames.
  OLE doesn't.

- OpenDoc lets you partly overlay part frames a la overlapping windows
  and also have transparent parts.
  OLE doesn't.

I could be wrong on one of these, but I don't think so.
Basically, OLE is, as anything operating-system-like MS does,
substandard and a crock. (Well, NT might actually be a good
server platform, but apart from that)

Cheers,


					/ h+
-- 
 -- Jon W{tte, h+@nada.kth.se, Mac Software Engineer Deluxe --

   What we need is a good GNU [...] licence manager implementation.
                     -- Raphael Manfredi

+++++++++++++++++++++++++++

>From Aaron Bratcher <aaron_bratcher@fpm.uchicago.edu>
Date: Fri, 24 Jun 1994 18:22:46 GMT
Organization: University of Chicago

In article <2ue6v6$fs3@news.kth.se> Jon W!tte, d88-jwa@dront.nada.kth.se writes:
>Basically, OLE sucks. OpenDoc will be out Any Year Now and has a much
>clearer and better usage model and content model. If you support OpenDoc,
>Apple will provide interchangeability with OLE 2.

Something I just read in "Client/Server Today" in the June 94 issue on page 84:

     If the Apple/IBM/WordPerfect/Novell/et al. OpenDoc spec wins the day, then you will see truly cross-platform, plug-and-play componentware sprouting up all over the place. But if Microsoft's OLE wins instead, then all you will ever have is MS Office left to buy, with some ISV stragglers
feeding off the crumbs from Big Bill's groaning board.
     Please, forget all the Microsoft OLE marketing hype; surely you are aware that "Open" Microsoft just tried to force software developers to sign a non-disclosure agreement that said if they developed for OLE, they were forbidden from developing for OpenDoc. (Note: It just backed down from this
silliness.)
     Bear in mind, Microsoft is facing possible Federal Trace Commission anti-trust action. If it dares to pull this type of stunt under these circumstances, do you think Microsoft will give up control of both the desktop OS and the applications willingly?

/* endquote */

I'm sorry, but that makes me want to toss all the Microsoft products I have (I only have 1 product of theirs I use and I regret it) and do my best to make things that will directly compete against them using the OpenDoc spec.

- ------------------------------------------------------------------------
     MegaWatt                         |    _____  _____  _____   _   _ 
                                      |   |__  / | ___ || ___ \ | | | |
AKA  Aaron L. Bratcher                |     / /  | |_| || |_/ / | | | |
     University of Chicago            |    / /__ | ___ ||  __/  |_| |_|
     aaron_bratcher@fpm.uchicago.edu  |   |_____||_| |_||_|     (_) (_)
- ------------------------------------------------------------------------

+++++++++++++++++++++++++++

>From Jens Alfke <jens_alfke@powertalk.apple.com>
Date: Fri, 24 Jun 1994 18:53:56 GMT
Organization: Apple Computer

Jon W!tte, d88-jwa@dront.nada.kth.se writes:
<lots of nice things about OpenDoc and savage things about OLE>

Thanks, Jon! Couldn't have said it better myself. That 8100AV will be in the
mail to you shortly.

Incidentally, if anyone would like more info about OpenDoc, there are white
papers and such available by anon ftp from cil.org.

--Jens Alfke
  jens_alfke@powertalk              Rebel girl, rebel girl,
            .apple.com              Rebel girl you are the queen of my world

+++++++++++++++++++++++++++

>From ejohnson@netcom.com (Eric Johnson)
Date: Fri, 24 Jun 1994 20:26:48 GMT
Organization: NETCOM On-line Communication Services (408 261-4700 guest)

d88-jwa@dront.nada.kth.se (Jon Wätte) writes:

>- OpenDoc builds on the Bento storage format.
>  OLE doesn't (and doesn't even have anything similar)

I believe this is false.  OLE does have something similar, its known
as the structured storage model.  It allows one to store files within
a file.

-Eric
-- 
Eric E Johnson                    ejohnson@netcom.netcom.com
"I need a kill file for TV" - Jim Browne while watching COPS

+++++++++++++++++++++++++++

>From howard@netcom.com (Howard Berkey)
Date: Sat, 25 Jun 1994 05:43:25 GMT
Organization: Netcom Online Communications Services (408-241-9760 login: guest)

In article <1994Jun24.185356.19583@gallant.apple.com> Jens Alfke <jens_alfke@powertalk.apple.com> writes:
>Jon W!tte, d88-jwa@dront.nada.kth.se writes:
><lots of nice things about OpenDoc and savage things about OLE>
>
>Thanks, Jon! Couldn't have said it better myself. That 8100AV will be in the
>mail to you shortly.
>

Careful!  The way I've heard Swedish ad laws explained, you're obliged
to give him one now :-) :-)

>Incidentally, if anyone would like more info about OpenDoc, there are white
>papers and such available by anon ftp from cil.org.
>

Thanks!

-H-


>--Jens Alfke
>  jens_alfke@powertalk              Rebel girl, rebel girl,
>            .apple.com              Rebel girl you are the queen of my world


-- 
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Howard Berkey                                             howard@netcom.com   
			      Eat at C-Ko's
...........................................................................

+++++++++++++++++++++++++++

>From mhteas@aol.com (Mhteas)
Date: 25 Jun 1994 09:50:14 -0400
Organization: America Online, Inc. (1-800-827-6364)

In article <2ue6v6$fs3@news.kth.se>, d88-jwa@dront.nada.kth.se (Jon
Wtte) writes:

>Basically, OLE sucks. OpenDoc will be out Any Year Now and has a
much
>clearer and better usage model and content model.

After trying to use OLE, I whole-heartedly agree with the Jon's
statement.  I avoid using MS products when I can.  MS is a good
demonstration that marketing ability and quality technology are
completely different things.  Working around Windows programmers is a
good way to learn new curse words.  (So Jen, when do I expect *my*
PowerMac? :)

However, as much as I would prefer to use OpenDoc (don't you think I
suggested it?), I'm working on contract.  The client spec'ed OLE for
proprientary reasons of their own.  As I specifically mentioned in my
earlier request, "I do need to use OLE, this is non-negotiable with
my client."

Just asking for info, don't jump on me :)

Thanks anyhow,

Malcolm H. Teas                   Software by contract for 
Teas Technology                   the Macintosh and Newton
mhteas@aol.com
Voice/fax: (603) 427-0231 (USA)

+++++++++++++++++++++++++++

>From rob@eats.com (Rob Newberry)
Date: Sat, 25 Jun 1994 22:23:34 UNDEFINED
Organization: Education and Technology Solutions

>Basically, OLE sucks. OpenDoc will be out Any Year Now and has a much
>clearer and better usage model and content model. If you support OpenDoc,
>Apple will provide interchangeability with OLE 2.

Ok, Jon...OLE may not be all OpenDoc is, BUT...

OLE is here now.  OpenDoc is not.  And it may not be for a while.  And once it 
is, I doubt there will be as much help in learning it as there is for learning 
OLE -- everyone and their dog is starting to use OLE under Windows, and there 
are already several great texts on using it.  Where is the same for OpenDoc?  
Nowhere.

I see no need to defend Microsoft -- in fact, I'd just as soon jump in on the 
attack.  But OLE is perhaps the best thing Microsoft ever did, and is 
probably the most innovative technology they've ever come up with.  Everywhere 
else, Windows is a copy of other ideas.  But with OLE, Microsoft is actually 
leading most of the game (yes, I'm aware that they didn't completely come up 
with OLE from scratch, but hell, very few companies ever completely invent 
something like component computing -- Microsoft's technique is simply a good 
starting point, and a truly good effort for as young as the technology is).

Sure, if all you want to do is Mac development, you can wait for OpenDoc.  It 
will be better than OLE.  But then again, Apple and friends can draw from 
Microsoft's mistakes.  On the other hand, Microsoft will continue to improve 
OLE.  And there will probably always be more support and documentation for 
learning OLE.

One last note.  While Bento is a wonderful thing, OLE does have the compound 
file system, which is very nice.  Bento may let you do a whole lot more, but 
compound files do almost everything I can think of that I need to do compound 
documents.

I'd love to see OpenDoc do very well for Apple.  But OLE is here now.  And 
there's lots of information about how to use it.

(And while I'm still upon this soapbox, the guy said he had to use OLE because 
it was in a contract.  Why would you tell him, "don't do it" ?  Did you want 
to see him fired?  For heaven's sake, at least tell him, "I'm sorry you have 
to do that, but here's the best info I can give you."  And why shouldn't 
anyone learn OLE?  Why should a programmer avoid learning any technology?  Go 
ahead, if you can, learn OLE.  It'll only make you a better programmer (even 
if it's just because you see lots of design flaws :-), and a lot more 
marketable as a professional.  Hell, learn as much as you can.  Don't be 
scared to dig in, just because something easier may come along.  Sheesh.)

Rob


*******************************************************************
Rob Newberry               Education and Technology Solutions, Inc.
Email: rob@eats.com        4303 Parkland Court
Phone: 301 438 3915        Rockville, Maryland 20853            
FAX: 301 438 3748

              "He who laughs first didn't get the joke."
			-- Paul Westerberg
*******************************************************************

+++++++++++++++++++++++++++

>From d88-jwa@dront.nada.kth.se (Jon Wätte)
Date: 26 Jun 1994 13:24:01 GMT
Organization: The Royal Institute of Technology

>>Thanks, Jon! Couldn't have said it better myself. That 8100AV will be in the
>>mail to you shortly.

>Careful!  The way I've heard Swedish ad laws explained, you're obliged
>to give him one now :-) :-)

Indeed, else we mount an Air Force expedition and come get him to
have him stand trial here. Or something.

Cheers,

					/ h+
-- 
 -- Jon W{tte, h+@nada.kth.se, Mac Software Engineer Deluxe --
  "And now, from the makers of EDLIN, comes: Windows NT!"

+++++++++++++++++++++++++++

>From d88-jwa@dront.nada.kth.se (Jon Wätte)
Date: 26 Jun 1994 13:31:19 GMT
Organization: The Royal Institute of Technology

In <rob.200.0745C41D@eats.com> rob@eats.com (Rob Newberry) writes:

>OLE is here now.  OpenDoc is not.  And it may not be for a while.  And once it 
Huh? Well, these CDs I have must be figments of my imagination then.

>is, I doubt there will be as much help in learning it as there is for learning 
And Apple didn't actually hold free kitchens for learning OpenDoc;
they just drug people and hypnotize them to think they do. (Before
everyone wants one: you have to be an active developer who shows
interest at adopting new technologies. Tals to your evangelist. And
travel & lodging is on you)

>Sure, if all you want to do is Mac development, you can wait for OpenDoc.  It 

With a half-year lead-time for product development, chances are that
OpenDoc is on the market when your component gets out.

>file system, which is very nice.  Bento may let you do a whole lot more, but 
>compound files do almost everything I can think of that I need to do compound 
>documents.

Bento actively encourages you to let different objects access each
OTHERs data, even without using Semantic Events (like scripting)
Bento also has drafts of the Bento file.

>it was in a contract.  Why would you tell him, "don't do it" ?  Did you want 
>to see him fired?  For heaven's sake, at least tell him, "I'm sorry you have 

Oh, no, I said OpenDoc will cross-support OLE, so if his deadline is
suffucuently far from now, he could go OpenDoc. Myself, I'm picky about
customers these days. After all, he's paying me to enlighten him about
stuff I know more about than him, and if he won't take it without really
good reasons, well, I suggest he uses someone cheaper and more gullible.

>marketable as a professional.  Hell, learn as much as you can.  Don't be 
>scared to dig in, just because something easier may come along.  Sheesh.)

I had the OLE 2 for Mac seed, but it scared me away.

Cheers,

					/ h+
-- 
 -- Jon W{tte, h+@nada.kth.se, Mac Software Engineer Deluxe --
  "And now, from the makers of EDLIN, comes: Windows NT!"

+++++++++++++++++++++++++++

>From isis@netcom.com (Mike Cohen)
Date: Sun, 26 Jun 1994 21:21:07 GMT
Organization: ISIS International

d88-jwa@dront.nada.kth.se (Jon Wätte) writes:

>I had the OLE 2 for Mac seed, but it scared me away.

I also got it & was very disgusted by it. After looking at it a few times, I
decided not to bother.
-- 
Mike Cohen - isis@netcom.com
NewtonMail, eWorld: MikeC / ALink: D6734 / AOL: MikeC20
Home Page: file://ftp.netcom.com/pub/isis/home.html

+++++++++++++++++++++++++++

>From Aaron Bratcher <aaron_bratcher@fpm.uchicago.edu>
Date: Mon, 27 Jun 1994 12:01:56 GMT
Organization: University of Chicago

In article <rob.200.0745C41D@eats.com> Rob Newberry, rob@eats.com writes:
>Sure, if all you want to do is Mac development, you can wait for OpenDoc...

Isn't that kinda like not supporting AppleEvents because it's not on Windows? One good turn deseres another  :P

Seriously... I think that waiting for OpenDoc will be well worth it. OLE is here now, but I personally would rather not give Microsoft any more money.

- ------------------------------------------------------------------------
     MegaWatt                         |    _____  _____  _____   _   _ 
                                      |   |__  / | ___ || ___ \ | | | |
AKA  Aaron L. Bratcher                |     / /  | |_| || |_/ / | | | |
     University of Chicago            |    / /__ | ___ ||  __/  |_| |_|
     aaron_bratcher@fpm.uchicago.edu  |   |_____||_| |_||_|     (_) (_)
- ------------------------------------------------------------------------

+++++++++++++++++++++++++++

>From Jens Alfke <jens_alfke@powertalk.apple.com>
Date: Tue, 28 Jun 1994 00:53:53 GMT
Organization: Apple Computer

Rob Newberry, rob@eats.com writes:
> Sure, if all you want to do is Mac development, you can wait for OpenDoc.

Remember that OpenDoc is being developed for many platforms, not just the
Mac. Alpha seeds for Windows and OS/2 are now available from WordPerfect and
IBM respectively, and Unix (AIX and others) ports shouldn't be far behind.
The OpenDoc Parts Framework will also support Mac/Windows cross-platform part
development.
  All this I think makes OpenDoc pretty compelling to people considering
cross platform development. (How soon before we see OLE for Unix? Or for
native OS/2 apps?)

--Jens Alfke
  jens_alfke@powertalk              Rebel girl, rebel girl,
            .apple.com              Rebel girl you are the queen of my world

+++++++++++++++++++++++++++

>From Neil Ticktin <publisher@xplain.com>
Date: Tue, 28 Jun 1994 03:28:13 GMT
Organization: MacTech Magazine/Xplain Corp.

In article <2udca9$odt@search01.news.aol.com> Mhteas, mhteas@aol.com
writes:
>Is there anyone who's implemented OLE linking on the Macintosh that
>can provide advice?

Malcolm,

Long time -- no talk.

FYI:  The August issue of MacTech Magazine will have the OLE 2.0 SDK CD
*bound into* the magazine.  There's some sample articles on using OLE and
another article on OpenDoc vs. OLE.  I believe that the "SimpleServer"
article which was written by Microsoft to show off OLE might help you --
but I'd have to double check to make sure.

This issue will be available at the MacTech Magazine booth at Macworld in
World Trade Center.  If you are a subscriber, it will show up on your
door step automatically.  If not, come by and see us to get a copy.

Hope it helps,

Neil Ticktin
MacTech Magazine
- ---------------------------------------------------------------------
           Neil Ticktin, MacTech Magazine (formerly MacTutor)
PO Box 250055, Los Angeles, CA 90025 * 310-575-4343 * Fax: 310-575-0925
 For more info, anonymous ftp to ftp.netcom.com and cd to /pub/xplain
  custservice@xplain.com * editorial@xplain.com * adsales@xplain.com
marketing@xplain.com * accounting@xplain.com * pressreleases@xplain.com
   progchallenge@xplain.com * publisher@xplain.com * info@xplain.com

+++++++++++++++++++++++++++

>From jonpugh@netcom.com (Jon Pugh)
Date: Thu, 30 Jun 1994 00:49:58 GMT
Organization: NETCOM On-line Communication Services (408 261-4700 guest)

Jon Wätte (d88-jwa@dront.nada.kth.se) wrote:
> >>Thanks, Jon! Couldn't have said it better myself. That 8100AV will be in the
> >>mail to you shortly.

> >Careful!  The way I've heard Swedish ad laws explained, you're obliged
> >to give him one now :-) :-)

> Indeed, else we mount an Air Force expedition and come get him to
> have him stand trial here. Or something.

I thought you guys were neutral and all your army does is make pocket knives.

;)

Jon

+++++++++++++++++++++++++++

>From quinn@cs.uwa.edu.au (Quinn "The Eskimo!")
Date: Fri, 01 Jul 1994 10:58:35 +0800
Organization: Department of Computer Science, The University of Western Australia

In article <jonpughCs6qBA.B0G@netcom.com>, jonpugh@netcom.com (Jon Pugh) wrote:

>Jon Wätte (d88-jwa@dront.nada.kth.se) wrote:
>> >>Thanks, Jon! [...]
>
>I thought you guys were neutral and all your army does is make pocket knives.

Yeah, the Swedish Army Knife, a marvellous piece of badge engineering,
perfect for those of us who prefer gold-on-blue to the more garish
white-on-red.
-- 
Quinn "The Eskimo!"      <quinn@cs.uwa.edu.au>     "Support HAVOC!"
Department of Computer Science, The University of Western Australia

+++++++++++++++++++++++++++

>From Dan_Menchaca@quickmail.apple.com (Dan)
Date: Fri, 01 Jul 1994 18:47:45 -0700
Organization: Apple


> However, as much as I would prefer to use OpenDoc (don't you think I
> suggested it?), I'm working on contract.  The client spec'ed OLE for
> proprientary reasons of their own.  As I specifically mentioned in my
> earlier request, "I do need to use OLE, this is non-negotiable with
> my client."
> 
So what's the problem.  OpenDoc will support OLE.  So, you can have OpenDoc
modules and still have OLE too.  So, go out and use OpenDoc as the
container object of choice.

+++++++++++++++++++++++++++

>From rickard@softlab.se (Rickard Andersson)
Date: 30 Jun 1994 17:01:38 +0200
Organization: SoftLab ab

jonpugh@netcom.com (Jon Pugh) writes:
>Jon Wätte (d88-jwa@dront.nada.kth.se) wrote:
>> >>Thanks, Jon! Couldn't have said it better myself. That 8100AV will be in the
>> >>mail to you shortly.

>> >Careful!  The way I've heard Swedish ad laws explained, you're obliged
>> >to give him one now :-) :-)

>> Indeed, else we mount an Air Force expedition and come get him to
>> have him stand trial here. Or something.

>I thought you guys were neutral and all your army does is make pocket knives.

>;)

>Jon

We aren't more neutral than anybody else :-)
And we buy our pocket knives from Switzerland :-)


| Rickard Andersson       rickard@softlab.se |     be in harmony     
+--------------------------------------------+ with the eye of viewer
| A swede programming Macintosh shareware... |   that is the answer  
+--------------------------------------------+         /RAN          

---------------------------

>From oster@netcom.com (David Phillip Oster)
Subject: Omission in Universal Headers: TrackControl()
Date: Thu, 30 Jun 1994 15:16:48 GMT
Organization: Netcom Online Communications Services (408-241-9760 login: guest)

I am still using Apple's Universal Headers that came with THINK C 7,
and I want to know if a missing piece in them has been fixed.

Oddly enough, the missing piece is with the system call TrackControl().
It is odd, because TrackControl() is the system call that
InsideMac:PowerPC uses as an example of calling a system call with
niversal procedure pointers.

The problem is that that InsideMac:Toolbox Essentials says that
TrackControl() can be called two ways:

1.) with a callback which will be called during a sustained mousedown
in a control part like a scroll-bar arrow. This callback will be called
with the ControlHandle and part code as its two arguments.

2) with a callback which will be called during a sustained mousedown
and drag on a control part like a scroll-bar thumb. This callback will
be called with no arguments.

Type one is handled by ControlActionProcPtr which is defined in the
Universal Header's Controls.h file.

Type two is not handled. There should be a
ControlIndicatorActionProcPtr and there isn't.

+++++++++++++++++++++++++++

>From wdh@netcom.com (Bill Hofmann)
Date: Thu, 30 Jun 1994 15:50:45 GMT
Organization: Fresh Software

In article <osterCs7uG1.2x2@netcom.com>, oster@netcom.com (David Phillip
Oster) wrote:
> I am still using Apple's Universal Headers that came with THINK C 7,
> and I want to know if a missing piece in them has been fixed.
>...
> Type one is handled by ControlActionProcPtr which is defined in the
> Universal Header's Controls.h file.
> 
> Type two is not handled. There should be a
> ControlIndicatorActionProcPtr and there isn't.
You're right.  It's a bug.  Report it to Apple.Bugs and MPW.Bugs at
Applelink.apple.com.  I've found a few other ommissions.  Hapily, the
people maintaining the headers are amenable to bug reports.
-- 
Bill Hofmann                                   wdh@netcom.com
Fresh Software and Instructional Design        voice: +1 510 524 0852
1640 San Pablo Ave #C, Berkeley CA 94702 USA   fax:   +1 510 524 0853

---------------------------

>From Kevin.R.Boyce@gsfc.nasa.gov (Kevin R. Boyce)
Subject: Where does data go when no PPCRead is pending?
Date: Tue, 28 Jun 1994 15:22:50 -0400
Organization: NASA/GSFC

Another PPC question:

What happens to data that gets sent to a port using PPCWrite when there is
no PPCRead pending on the other end?  Apparently it all just squirts out
the end of the pipe and onto the floor.  Is this true?  This would actually
be A Good Thing, since the only way I could be sent data I haven't
specifically asked for is if the user sticks his hands up something they
don't belong.  I just don't want to have trouble later with people slipping
on all that gooey data....

-- 
Kevin      Kevin.R.Boyce@gsfc.nasa.gov
        -- Happy 100th, Lowell Observatory and GAS --

+++++++++++++++++++++++++++

>From jumplong@aol.com (Jump Long)
Date: 29 Jun 1994 02:32:05 -0400
Organization: America Online, Inc. (1-800-827-6364)

In article <Kevin.R.Boyce-280694152250@sofa.gsfc.nasa.gov>,
Kevin.R.Boyce@gsfc.nasa.gov (Kevin R. Boyce) writes:

>What happens to data that gets sent to a port using PPCWrite when
there is
>no PPCRead pending on the other end?  Apparently it all just squirts
out
>the end of the pipe and onto the floor. Is this true? This would
actually
>be A Good Thing, since the only way I could be sent data I haven't
>specifically asked for is if the user sticks his hands up something
they
>don't belong.  I just don't want to have trouble later with people
slipping
>on all that gooey data....

The PPC Toolbox is implemented on top of ADSP which, unless the
connection breaks, is not supposed to loose data (and doesn't as far
as I know).

So, what happens to data passed to PPCWrite if there's no PPCRead
pending?  First, it sits in the senders buffers until PPC can pass it
off to ADSP. It can do that when ADSP has room in the send queue for
the data. Then, it sits in the ADSP send queue until there's room in
the receiver's ADSP receive queue.  Then, it sits in the ADSP receive
queue until that end of the connection reads it with a PPCRead
request.

Off the top of my head, I can't tell you how big the ADSP send and
receive buffers used by PPC Toolbox are, but you should be able to
find out by breaking on dspInit and looking at the ADSP connection
control block passed in by the PPC Toolbox code.

If you want to know more about ADSP, see Inside AppleTalk second
edition (for how the protocol works) and either Inside Macintosh
Volume VI, chapter 32 "The AppleTalk Manager" or Inside Macintosh:
Networking, chapter 5 "AppleTalk Data Stream Protocol".

If you want to know more about the PPC Toolbox, I believe APDA sells
a document that tells how to implement the PPC Toobox on top of NBP
and ADSP (this document doesn't describe the Macintosh implementation
in detail. Instead, it's intended audience are developer implementing
the PPC Toolbox on non-Macintosh platforms).

- Jim Luther


---------------------------

End of C.S.M.P. Digest
**********************