Transport Neutral Encapsulation Format or TNEF is a proprietary email attachment format used by Microsoft Outlook and Microsoft Exchange Server . An attached file with TNEF encoding is most often named winmail.dat or win.dat , and has a MIME type of Application/MS-TNEF . The official ( IANA ) media type, however, is application/vnd.ms-tnef .
20-467: Some TNEF files contain information used only by Outlook to generate a richly formatted view of the message, such as embedded ( OLE ) documents or Outlook-specific features such as forms, voting buttons, and meeting requests. Other TNEF files may contain files which have been attached to an e-mail message. Within the Outlook e-mail client , TNEF encoding cannot be explicitly enabled or disabled (except via
40-516: A component of OLE, shipping from Windows 3.1 up to Windows XP allows a non-OLE object to be "packaged" so it can be embedded into an OLE client. OLE 2.0 was the next evolution of OLE, sharing many of the same goals as version 1.0, but was re-implemented on top of the COM instead of using VTBLs directly. New features were OLE automation , drag-and-drop , in-place activation and structured storage . Monikers evolved from OLE 1 object names, and provided
60-548: A consortium called the Component Integration Laboratories ("CIL") to develop OpenDoc as an open standard for cross-platform linking and embedding. Microsoft required OLE compatibility as a condition of Microsoft's certification of an application's compatibility with Windows 95 . Microsoft initially announced that applications using OpenDoc would be deemed compatible with OLE, and would receive certification for Windows 95. Microsoft later reversed
80-510: A disciplined culture and process is required to achieve the benefits of CBSE. Third-party components are often utilized in large systems. The system can be designed visually with the Unified Modeling Language (UML). Each component is shown as a rectangle, and an interface is shown as a lollipop to indicate a provided interface and as a socket to indicate consumption of an interface. Component-based usability testing
100-546: A hierarchical object and resource naming system similar to URLs or URIs , which were independently invented. Windows now has merged the two technologies supporting a URL Moniker type, and a Moniker URL scheme. OLE custom controls were introduced in 1994 as a replacement for the now deprecated Visual Basic Extension controls. Instead of upgrading these, the new architecture was based on OLE. In particular, any container that supported OLE 2.0 could already embed OLE custom controls, although these controls cannot react to events unless
120-716: A registry setting). Selecting RTF as the format for sending an e-mail implicitly enables TNEF encoding, using it instead of the more common and widely compatible MIME standard. When sending plain text or HTML format messages, some versions of Outlook (apparently including Outlook 2000 ) prefer MIME, but may still use TNEF under some circumstances (for example, if an Outlook feature requires it). TNEF attachments can contain security- sensitive information such as user login name and file paths, from which access controls could possibly be inferred. Native-mode Microsoft Exchange 2000 organizations will, in some circumstances, send entire messages as TNEF-encoded raw binary independent of what
140-568: A structure of function pointers that the system library can use to communicate with the server or client. The server and client libraries, OLESVR.DLL and OLECLI.DLL , were originally designed to communicate between themselves using the WM_DDE_EXECUTE message. OLE 1.0 later evolved to become an architecture for software components known as the Component Object Model (COM), and later DCOM . When an OLE object
160-434: A text editor and an image editor. This creates a Compound File Binary Format document and a master file to which the document makes reference. Changes to data in the master file immediately affect the document that references it. This is called "linking" (instead of "embedding"). OLE can also be used to transfer data between different applications using drag and drop or clipboard operations. OLE 1.0, released in 1990,
180-456: Is a proprietary technology developed by Microsoft that allows embedding and linking to documents and other objects. For developers, it brought OLE Control Extension (OCX), a way to develop and use custom user interface elements. On a technical level, an OLE object is any object that implements the IOleObject interface, possibly along with a wide range of other interfaces, depending on
200-508: Is a style of software engineering that aims to construct a software system from components that are loosely- coupled and reusable . This emphasizes the separation of concerns among components. To find the right level of component granularity, software architects have to continuously iterate their component designs with developers. Architects need to take into account user requirements, responsibilities and architectural characteristics. For large-scale systems developed by large teams,
220-575: Is advertised by the receiving SMTP server. As documented in Microsoft KBA #323483, this technique is not RFC -compliant because these messages have the following characteristics: Internal communications between Exchange Servers (2000 and later) over SMTP encode the message in S/TNEF (Summary TNEF) format. The conversion between the format needed by the end client on the Internet is performed on
SECTION 10
#1732793149271240-847: Is an object representing the location of the object in its container. A container supports a site object for every object contained. What follows is a list of interfaces, grouped by the object that usually needs to implement them. Interfaces usually implemented by the OLE object are usually called on by the OLE container, and vice versa. Note that in the following list indentation indicates interface inheritance. All non-indented interfaces derive from IUnknown . OpenDoc technology tried to compete with OLE. Some of Microsoft's competitors considered OpenDoc to be more robust and easier to use. OpenDoc allowed users to view and edit information across applications, directly in competition with Microsoft's proprietary OLE standard. In 1993 some Microsoft competitors established
260-425: Is placed on the clipboard or embedded in a document, both a visual representation in native Windows formats (such as a bitmap or metafile ) is stored, as well as the underlying data in its own format. This allows applications to display the object without loading the application used to create the object, while also allowing the object to be edited, if the appropriate application is installed. The Object Packager ,
280-483: The IOleObject interface is compulsory, but other interfaces may also need to be implemented if the functionality exported by those interfaces is required. To ease understanding of what follows, some terminology has to be explained. The view status of an object is whether the object is transparent, opaque, or opaque with a solid background, and whether it supports drawing with a specified aspect. The site of an object
300-488: The container supports this. OLE custom controls are usually shipped in the form of a dynamic link library with the .ocx extension. In 1996 all interfaces for controls (except IUnknown) were made optional to keep the file size of controls down, so they would download faster; these were then called ActiveX Controls . OLE objects and containers are implemented on top of the Component Object Model ; they are objects that can implement interfaces to export their functionality. Only
320-414: The decision and said that applications using OpenDoc might not receive certification at all. Microsoft withheld specifications and debugged versions of OLE until after it had released its competing applications. Use of OLE objects limits interoperability, because these objects are not widely supported in programs for viewing or editing files outside of Microsoft Windows (e.g., embedding of other files inside
340-414: The file, such as tables or charts from a spreadsheet application in a text document or presentation file). If software that understands an OLE object is not available, the object is usually replaced by a picture (bitmap representation of the object) or not displayed at all. Software componentry Component-based software engineering ( CBSE ), also called component-based development ( CBD ),
360-576: The last Hub Transport server before final delivery, and when the Hub Transport role of an Exchange Server is about to deliver the message to a mailbox role server, the message is converted to MAPI format for storage. S/TNEF differs from TNEF in that it is 8-bit (not 7-bit for TNEF) and does not contain a plain-text portion. Programs to decode and extract files from TNEF-encoded attachments are available on many platforms. Object Linking and Embedding Object Linking and Embedding ( OLE )
380-399: The object's needs. OLE allows an editing application to export part of a document to another editing application and then import it with additional content. For example, a desktop publishing system might send some text to a word processor or a picture to a bitmap editor using OLE. The main benefit of OLE is to add different kinds of data to a document from different applications, like
400-477: Was an evolution of the original Dynamic Data Exchange (DDE) concept that Microsoft developed for earlier versions of Windows . While DDE was limited to transferring limited amounts of data between two running applications, OLE was capable of maintaining active links between two documents or even embedding one type of document within another. OLE servers and clients communicate with system libraries using virtual function tables , or VTBLs. The VTBL consists of
#270729