So mounting a Windows share would be something like this:
mount -t cifs //(hostname or IP)/folder /mnt/folder -o user=whatever,password=whatever,domain=whatever
You need to do this as root. This will mount a share at the location /mnt/folder (so when you go in that directory, you'll be accessing the share you mounted). Obviously you'll need to first create a directory to mount it in named whatever you want (/mnt/whatever or /net/whatever). Now this is a non-permanent thing for testing. After you reboot, it won't come back. To make it permanent, you need to do add a line to the end of your /etc/fstab that looks like this:
//(hostname or IP)/folder /mnt/folder cifs username=whatever,password=whatever,domain=whatever 0 0
Basically the line looks similar to the mount command, except the filesystem type comes third, there's no "-t" and there are two extra zeros after the normal stuff.
You might also want to make the options string in the entry look like this:
Then you could make a separate file, /etc/cifs_credentials with the following inside:
This allows it to read the password and username from a separate file. Then you would "chmod 600 /etc/cifs_credentials". That will let you store your password a bit more securely, since normally everyone can read your /etc/fstab file and you'd have to put your password right in there. chmod 600 changes the file permissions so only the owner (root) can read and write it.
* You have to use a regular hostname or IP, not a Windows filesharing style name (NetBIOS names/LMHOSTS/etc. -- usually these names are in all caps like MYWINDOWSCOMPUTATOR). You could add a service to resolve those names, but normally they don't mean anything to Linux.
* You may have to tweak permissions. Linux doesn't have a natural way to map its user permissions to Windows mounts, so you might want to add uid=something,gid=something to your mount options. That will let you set which Linux user or group "owns" the files. You'll probably want to set it to your regular user account's uid and gid. Run the "id" command to find that out (as you, not root). Without those options, the files will probably be readable by your normal user, but you probably won't be able to write to them or create new files unless you are root.
Now, for printer sharing, it should be fairly simple if you're using CUPS. CUPS accepts printer URIs like this following:
smb://username:password@workgroup/(hostname or IP)/printer
That should tell it to use Samba to access a Windows printer.